最后
金三银四马上就到了,希望大家能好好学习一下这些技术点
学习视频:
大厂面试真题:
直到该队列为空,将其面积统计到一个容器当中,最后计算出最大值
===================================================================
class Solution {
public:
int maxAreaOfIsland(vector<vector>& grid) {
/**
思路:
1.这里的遍历数据方式为BFS广度遍历
2.当我们遇到一个‘1’的时候,我们就遍历他的左右上下(邻接点),如果是1那就入队,直到队列
为空为止。
3.我们记录每个岛屿的面积是采用 我们设置初始值为1,当每遇到一个邻接点为1就统计其个数
直到该队列为空,将其面积统计到一个容器当中,最后计算出最大值
*/
int m = grid.size();//表示二维矩阵的行
int n = grid[0].size();//表示二维矩阵的列
vector v;//存面积用的
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
queue<pair<int,int> >q;
int count = 0;
if(grid[i][j] == 1){
q.push({i,j});
grid[i][j] = 0;//访问过一个结点 就将其设置为 ‘0’
count = 1;
}
//
while(!q.empty()){
auto temp = q.front();
q.pop();
int nr = temp.first;//代表行
int nc = temp.second;//代表列
//该节点的上方
if(nr-1 >= 0 && grid[nr-1][nc] == 1){
q.push({nr-1,nc});
grid[nr-1][nc] = 0;
count++;
}
//该节点的下方
if(nr+1 < m && grid[nr+1][nc] == 1){
q.push({nr+1,nc});
最后
我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习
已经将知识体系整理好(源码,笔记,PPT,学习视频)
et/forums/4f45ff00ff254613a03fab5e56a57acb)收录**