无语的是,不知道为啥我的广搜最后一个测试点会TLE。。。
class Solution { public: int numIslands(vector<vector<char>>& grid) { int nums = 0; for (int i = 0; i < grid.size(); i++) { for (int j = 0; j < grid[0].size(); j++) { if (grid[i][j] == '1') { queue<pair<int, int>> q; q.push(pair<int, int>(i, j)); int x = i, y = j; do { x = q.front().first; y = q.front().second; grid[x][y] = '2'; q.pop(); if (y + 1 < grid[0].size() && grid[x][y + 1] == '1') q.push(pair<int, int>(x, y + 1)); if (x + 1 < grid.size() && grid[x + 1][y] == '1') q.push(pair<int, int>(x + 1, y)); if (y - 1 > -1 && grid[x][y - 1] == '1') q.push(pair<int, int>(x, y - 1)); if (x - 1 > -1 && grid[x - 1][y] == '1') q.push(pair<int, int>(x - 1, y)); } while (!q.empty()); nums++; } } } return nums; } };