演算法題 飛地的數量

2021-09-18 01:22:01 字數 976 閱讀 1559

leetcode 1020

題目描述:

給出乙個二維陣列a,每個單元格為 0(代表海)或 1(代表陸地)。

移動是指在陸地上從乙個地方走到另乙個地方(朝四個方向之一)或離開網格的邊界。

返回網格中無法在任意次數的移動中離開網格邊界的陸地單元格的數量。

示例 1:

輸入:[[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]輸出:3解釋:有三個 1 被 0 包圍。乙個 1 沒有被包圍,因為它在邊界上。
示例 2:

輸入:[[0,1,1,0],[0,0,1,0],[0,0,1,0],[0,0,0,0]]輸出:0解釋:所有 1 都在邊界上或可以到達邊界。
思路:

掃瞄一遍邊界,將值為1的格仔進行深度遍歷,全部標0,最後自然剩下無法到達邊界的格仔。

打個比方,就好像邊界上的陸地會伸出觸手破壞所有它夠得到的陸地,最終只有被海包圍的陸地能倖存

class solution 

for(int j = 0; j < col; j++)

for(int i = 0; i < row; i++)

}return res;

}public void dfs(int i, int j, int a)

}

1020 飛地的數量

給你乙個大小為 m x n 的二進位制矩陣 grid 其中 0 表示乙個海洋單元格 1 表示乙個陸地單元格。一次 移動 是指從乙個陸地單元格走到另乙個相鄰 上 下 左 右 的陸地單元格或跨過 grid 的邊界。返回網格中 無法 在任意次數的移動中離開網格邊界的陸地單元格的數量。示例 1 輸入 gri...

查詢接待收待飛地數量失敗 中國有哪些飛地?

說兩處比較冷門的 上海市位於安徽宣城的兩塊飛地 白茅嶺農場和軍天湖農場。這兩處飛地起源於上世紀50年代。解放後上海市各類社會不安定分子還有很多,彼時,新中國剛成立,為了確保上海這座重要工業城市的平安 穩定和經濟發展,上海就想出了在異地既能改造人,又能改造自然的計畫,於是白茅嶺等農場應運而生。1956...

演算法題 數字DP 度的數量(Python)

求給定區間 x,y 中滿足下列條件的整數個數 這個數恰好等於 k 個互不相等的 bb 的整數次冪之和。例如,設 x 15,y 20,k 2,b 2,則有且僅有下列三個數滿足題意 17 2 4 2 0 18 2 4 2 1 20 2 4 2 2 輸入格式 第一行包含兩個整數 x 和 y,接下來兩行包含...