如何做与别人的网站一样的,湘潭网站建设 诚信磐石网络,常州武进网站建设,辽宁建设工程信息网大连文章目录1. 题目2. 解题1. 题目
描述 给定一个 3xn的矩阵 number#xff0c;并且该矩阵只含有1到9的正整数。 考虑有一个大小为 3x3 滑动窗口#xff0c;从左到右遍历该矩阵 number#xff0c; 那么该滑动窗口在遍历整个矩阵的过程中会有n-2个。
现在你的任务是找出这些滑…
文章目录1. 题目2. 解题1. 题目
描述 给定一个 3xn的矩阵 number并且该矩阵只含有1到9的正整数。 考虑有一个大小为 3x3 滑动窗口从左到右遍历该矩阵 number 那么该滑动窗口在遍历整个矩阵的过程中会有n-2个。
现在你的任务是找出这些滑动窗口是否含有1到9的所有正整数 请返回一个长度为n-2的答案数组如果第 i 个滑动窗口含有1到9的所有正整数那么答案数组的第 i 个元素为true否则为false
示例
输入:[[1,2,3,2,5,7],[4,5,6,1,7,6],[7,8,9,4,8,3]]
输出:[true,false,true,false]
解释:第一个和第三个滑动窗口含有1到9所有数字其他的滑动窗口不含有1到9的所有数字来源https://tianchi.aliyun.com/oj/141744976105873771/153295019687743571
2. 解题
class Solution {
public:/*** param number: an only contains from 1 to 9 array* return: return whether or not each sliding window position contains all the numbers for 1 to 9 */vectorbool SlidingWindows(vectorvectorint number) {// write your code hereint n number[0].size();vectorbool ans(n-2, false);vectorint flag(10, 0);for(int i 0; i 3; i){for(int k 0; k 2; k){ //前3行2列的数字的个数flag[number[i][k]];}}for(int j 2; j n; j) { //右端点 的列加入for(int i 0; i 3; i){flag[number[i][j]];}bool res true;for(int x 1; x 9; x){ //检查1-9 是不是都是1个if(flag[x] ! 1){res false;break;}}ans[j-2] res;for(int i 0; i 3; i){ // 左端点的列 j-2列 计数减去flag[number[i][j-2]]--;}}return ans;}
};603ms C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步