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

2021-10-18 10:45:11 字數 975 閱讀 6018

和778. 水位上公升的泳池中游泳差不多模子,思路都是二維表每個格仔當作圖節點,乙個圖中找路徑的問題。

陣列範圍確定了的。

第一種解決辦法:並查集

給平台每個格仔編號,從左到右從上到下0~n*n-1,把平台高度當作key,平台編號當作value存到乙個陣列,這一步避免排序!

核心思想:乙個i增長表示此時水位高度,平台高度低於這個水位高度的就併入此時連通子圖中,其實就是看一下相鄰四周平台的高度是否小於當前平台高度,小於就合併。

每次合併檢查一下0號節點和n*n-1號節點是否聯通,聯通就結束。

由於平台高度第二種解決辦法:二分+搜尋

n的範圍50,解的範圍也確定0~n-1,不斷嘗試範圍內的解,找最小的解,搜尋可選擇bfs或者dfs複雜度nn,找解的時候用二分搜尋。最終複雜度o(n^2logn)

class

solution,,

,};public

intswiminwater

(int

grid)

}int ans =0;

for(

int i =

0;i < len;i++)}

if(find(0

)==find

(len-1)

)}return ans;

}static

void

union

(int x,

int y)

}static

intfind

(int x)

static

boolean

check

(int x,

int y,

int n)

}

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