leetcode 日经贴,Cpp code -Number of Islands
来源:互联网 发布:java加密解密的艺术 编辑:程序博客网 时间:2024/06/07 15:08
Number of Islands
class Solution { const static int dir[][2];public: void markstart(vector<vector<char> >&grid, int r, int c) { int n = grid.size(), m = grid[0].size(); queue<int> q; q.push(r * m + c); grid[r][c] = '2'; while (!q.empty()) { r = q.front() / m; c = q.front() % m; q.pop(); for (int i = 0; i < 4; ++i) { int nr = dir[i][0] + r; int nc = dir[i][1] + c; if (nr >= 0 && nr < n && nc >= 0 && nc < m) { if (grid[nr][nc] == '1') { q.push(nr * m + nc); grid[nr][nc] = '2'; } } } } } int numIslands(vector<vector<char>> &grid) { int n = grid.size(); if (n == 0) return 0; int m = grid[0].size(); if (m == 0) return 0; int ans = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { if (grid[i][j] == '1') { ++ans; markstart(grid, i, j); } } } for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { grid[i][j] = grid[i][j] == '2' ? '1':grid[i][j]; } } return ans; }};const int Solution::dir[][2] = {{-1,0}, {1,0}, {0,1}, {0,-1}};
0 0
- leetcode 日经贴,Cpp code -Number of Islands
- [LeetCode] Number of Islands
- Leetcode-Number of Islands
- Leetcode Number of Islands
- [LeetCode]Number of Islands
- [leetcode]Number of Islands
- [leetcode] Number of Islands
- leetcode Number of Islands
- leetcode:Number of Islands
- [leetcode] Number of Islands
- [LeetCode] Number of Islands
- LeetCode:Number of Islands
- Leetcode: Number of Islands
- 【LeetCode】Number of Islands
- [leetcode] Number of Islands
- leetcode--Number of Islands
- Leetcode|Number of Islands
- Number of Islands -- leetcode
- JS导出文件
- nyoj608 畅通工程 并查集
- 深夜敲模板_2——并查集
- 源码包详解
- Archlinux 安装步骤
- leetcode 日经贴,Cpp code -Number of Islands
- 图的遍历之-DFS深度优先遍历C++实现
- RTP协议全解(H264码流和PS流)
- 9. 程序员生存定律--管理向左,技术向右
- Android开发——Intent
- 引用对象接口时的注意点
- 华容道开发02---角色类的设计与数据读取
- TCP连接建立过程中为什么需要“三次握手”
- HDU 1394- Minimum Inversion Number(线段树求逆序数)