Leetcode每日一題:面試題16.19.水域大小
簡單的DFS
//八個方位
const int dx[8] = {1, -1, 0, 0, -1, -1, 1, 1};
const int dy[8] = {0, 0, 1, -1, -1, 1, 1, -1};
static bool cmp(int a, int b)
{
return a < b;
}
//經過(x,y)
void dfs(vector<vector<int>> &land, int x, int y, int &count)
{
//個數+1,並將此點置為已訪問
count++;
land[x][y] = 1;
int lenX = land.size(), lenY = land[0].size();
for (int k = 0; k < 8; k++)
{
int newX = x + dx[k], newY = y + dy[k];
if (newX < 0 || newX >= lenX || newY < 0 || newY >= lenY || land[newX][newY])
{
continue;
}
dfs(land, newX, newY, count);
}
}
vector<int> pondSizes(vector<vector<int>> &land)
{
int lenX = land.size(), lenY = land[0].size();
vector<int> res;
for (int i = 0; i < lenX; i++)
{
for (int j = 0; j < lenY; j++)
{
if (land[i][j] == 0)
{
int count = 0;
dfs(land, i, j, count);
res.push_back(count);
}
}
}
sort(res.begin(), res.end(), cmp);
return res;
}
相關文章
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- leetcode每日一題LeetCode每日一題
- Leetcode每日一題(1)LeetCode每日一題
- LeetCode每日一題:sort colorsLeetCode每日一題
- LeetCode 每日一題「判定字元是否唯一」LeetCode每日一題字元
- LeetCode每日一題:Nim遊戲(No.292)LeetCode每日一題遊戲
- LeetCode每日一題: 找不同(No.389)LeetCode每日一題
- LeetCode每日一題: 移除元素(No.27)LeetCode每日一題
- LeetCode每日一題: 移動零(No.283)LeetCode每日一題
- LeetCode每日一題:自除數(No.728)LeetCode每日一題
- LeetCode每日一題:迴文數(No.9)LeetCode每日一題
- LeetCode每日一題:兩數之和(No.1)LeetCode每日一題
- LeetCode每日一題:爬樓梯(No.70)LeetCode每日一題
- LeetCode每日一題: 排列硬幣(No.441)LeetCode每日一題
- LeetCode每日一題: 各位相加(No.258)LeetCode每日一題
- LeetCode每日一題:longest palindromic substringLeetCode每日一題
- LeetCode 2024/6 每日一題 合集LeetCode每日一題
- 每日一題每日一題
- LeetCode每日一題:整數反轉(No.7)LeetCode每日一題
- LeetCode每日一題:求眾數(No.169)LeetCode每日一題
- LeetCode每日一題: 轉置矩陣(No.867)LeetCode每日一題矩陣
- LeetCode每日一題:最長公共字首(No.14)LeetCode每日一題
- LeetCode每日一題: 搜尋插入位置(No.35)LeetCode每日一題
- 【js】Leetcode每日一題-葉子相似的樹JSLeetCode每日一題
- 【LeetCode】每日一題164. 最大間距LeetCode每日一題
- LeetCode:每日一題:27. 移除元素 ——————簡單LeetCode每日一題
- 【leetcode】(每日一題 771 寶石與石頭)LeetCode每日一題
- LeetCode每日一題 (32)1. 兩數之和LeetCode每日一題
- 每日一題2每日一題
- 每日一題1每日一題
- leetcode每日一題刷題記錄(10.26-10.30)LeetCode每日一題
- LeetCode每日一題: 旋轉陣列(No.189)LeetCode每日一題陣列
- LeetCode每日一題: 按奇偶排序陣列(No.905)LeetCode每日一題排序陣列
- LeetCode每日一題: 檸檬水找零(No.860)LeetCode每日一題
- LeetCode每日一題: 僅僅反轉字母(No.917)LeetCode每日一題
- LeetCode每日一題: 寶石與石頭(No.771)LeetCode每日一題
- LeetCode每日一題: 階乘後的零(No.172)LeetCode每日一題
- 【LeetCode】每日一題621. 任務排程器LeetCode每日一題