水位上公升的泳池中游泳 二分的應用

2021-10-18 10:39:01 字數 1090 閱讀 4551

題目大概的意思是在乙個n×n的泳池中,有n×n個高度不一的泳池,現在開始下雨了,每單位時間水位上公升一格,你現在在泳池的左上方,你只能游向被泳池淹沒的位置,假設你游泳的時間可不計,問要等待多久才能遊到泳池的右下方。

示例輸入:[[0,2],[1,3]]

0 2

1 3

示例輸出:3

題意簡化即為需要等待多少時間,左上角和右下角之間出現通路

那麼可以先求出最高平台max,然後做二分,即先求mid=(0+max)/2,測試經過mid單位時間後能否出現通路,如果可以則繼續測**(mid+max)/2**,如果不可以則測**(0+mid)/2**,直到求出最後的答案

class

solution,,

,};public

intswiminwater

(int

grid)

}int left =

0, right = max;

int mid = max;

while

(leftif(

ischecked

(map)

)else

}return right;

}public

boolean

ischecked

(int

map)

int[

] flag=

newint

[n][n]

; queue<

int[

]> queue =

newlinkedlist

<

>()

; queue.

add(

newint

);while

(!queue.

isempty()

)if(x>=

0&& x=

0&& y[y]==

0&& map[x]

[y]==0)

);}}

}return

false;}

}

778 水位上公升的泳池中游泳

778.水位上公升的泳池中游泳 在乙個 n x n 的座標方格grid中,每乙個方格的值grid i j 表示在位置 i,j 的平台高度。現在開始下雨了。當時間為t時,此時雨水導致水池中任意位置的水位為t。你可以從乙個平台遊向四周相鄰的任意乙個平台,但是前提是此時水位必須同時淹沒這兩個平台。假定你可...

力扣778水位上公升的泳池中游泳 python

res 0 n len grid heap grid 0 0 0,0 初始化第乙個點 visited set 0,0 我們建立個集合儲存我們走過的點,不需要再走一遍了 while heap res max res,height 我們選取最高水位作為返回值 if x n 1and y n 1 retu...

778 水位上公升的泳池中游泳 並查集

778.水位上公升的泳池中游泳 難度困難159 在乙個 n x n 的座標方格grid中,每乙個方格的值grid i j 表示在位置 i,j 的平台高度。現在開始下雨了。當時間為t時,此時雨水導致水池中任意位置的水位為t。你可以從乙個平台遊向四周相鄰的任意乙個平台,但是前提是此時水位必須同時淹沒這兩...