本文共 1130 字,大约阅读时间需要 3 分钟。
题目:求出最大的相邻的1的个数
思路:BFS
class Solution {public: int BFS(vector>& grid,int x,int y){ int lenx = grid.size() ,leny = grid[0].size(); int dir[4][2]={ {-1,0},{ 1,0},{ 0,-1},{ 0,1}}; struct Q{ int x; int y; }; Q q[2500]; int sum = 1; q[0].x = x; q[0].y = y; grid[x][y]=0; int l=0,r=1; while(l < r){ Q temp = q[l]; for(int x1=0;x1<4;x1++){ temp.x = q[l].x + dir[x1][0]; temp.y = q[l].y + dir[x1][1]; if(temp.x < 0 || temp.y < 0 || temp.x >= lenx || temp.y >= leny || !grid[temp.x][temp.y]) continue; q[r] = temp; grid[temp.x][temp.y] = 0; sum++; r++; } l++; } return sum; } int maxAreaOfIsland(vector >& grid) { int max = 0; int lenx = grid.size() ,leny = grid[0].size(); for(int x=0;x sum?max:sum; } } } return max; }};
转载地址:http://dnrai.baihongyu.com/