常用网站图标,wordpress设置仅自己可见,郑州网站制作需要多少钱,汉中市住房和城乡建设局网站文章目录 所属专栏:BFS算法 题目链接 思路如下#xff1a; 1.首先我们需要从第一列开始遍历#xff0c;寻找每一个都能够满足条件的位置#xff0c;将它插入到数组里面 2.第一列遍历完了后我们先判断第一列的数是否都满足条件插入到数组里面#xff0c;如果数组为空#… 文章目录 所属专栏:BFS算法 题目链接 思路如下 1.首先我们需要从第一列开始遍历寻找每一个都能够满足条件的位置将它插入到数组里面 2.第一列遍历完了后我们先判断第一列的数是否都满足条件插入到数组里面如果数组为空那么全部不满足条件这个时候我们就可以返回0 3.如果不为空那么就继续从第一列开始向第二列遍历这个时候我们需要清楚数组里面上一轮的能满足条件的数便于下一次遍历交换 class Solution {
public:int maxMoves(vectorvectorint grid) {int m grid.size(), n grid[0].size();vectorintq1,q2;for(int i 0;im;i)q1.push_back(i);for(int j 1;jn;j){q2.clear();for(auto i:q1){for(int i2 i-1;i2i1;i2){if(i20i2mgrid[i2][j]grid[i][j-1])q2.push_back(i2);}}swap(q1,q2);if(q1.empty())return j-1;}return n-1;}
}; 代码解读 1.为了能让第每次遍历完就开始遍历下一次的行数下标我们需要再创建一个数组把q2与q1交换 2.然后清除q2里面的内容这样q1就是第一次遍历满足条件的下标这样循环就可以达到依次遍历的目的