題目大概的意思是在乙個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。你可以從乙個平台遊向四周相鄰的任意乙個平台,但是前提是此時水位必須同時淹沒這兩...