当前位置: 首页 > news >正文

手机端怎么打开响应式的网站网站子域名查询

手机端怎么打开响应式的网站,网站子域名查询,网站备案相关前置许可,推广模式有几种今天我们看一下力扣上的这个题目:146.螺旋遍历二维数组 题目描述: 给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。 螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c…

今天我们看一下力扣上的这个题目:146.螺旋遍历二维数组

题目描述:

给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。
螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。
示例 1:
输入:array = [[1,2,3],[8,9,4],[7,6,5]]
输出:[1,2,3,4,5,6,7,8,9]
示例 2:
输入:array = [[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]
输出:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
限制:
0 <= array.length <= 100
0 <= array[i].length <= 100

思路

这道题和力扣54题是差不多一样的,我前面也有讲过,大家可以先做做。本道题是一个螺旋矩阵的题,面对这样的题,我们应该想到的是画个图遍历一下这个过程,我们可以得到如下的图:
首先我们先定义一个新数组用来存储数据的并判断一下这个二维数组是否为空,如果是空就返回空数组。如果第一行也是空,那么也是返回空。

  vector<int> res;if (array.empty() || array[0].empty()) {return res;}

接下来我们可以分为:从左到右遍历,从上到下遍历,从右到左遍历,从下到上遍历
在这里插入图片描述
1.从左到右遍历:
我们先定义一个left、right来遍历左右,定义top、bottom为上下。当top<=bottom或者left<=right时,循环一直继续。

		int left = 0;//初始化左边int right = array[0].size() - 1;//初始化右边为第一行数组最后一个数int top = 0;//初始化top为从上到下第一个int bottom = array.size() - 1;//初始化下边为最下列的数for (int i = left; i <= right; i++) {//定义i从最左边开始遍历,一直到第一行最后一个数res.push_back(array[top][i]);//二维数组横坐标不变,纵坐标变化尾插到新数组中}top++;//top向前走继续遍历第二行

在这里插入图片描述
2.从上到下遍历
列不变,行改变

for (int i = top; i <= bottom; i++) {//i从top开始,到bottom结束res.push_back(array[i][right]);//尾插到right这一列}right--;//列数减小

3.从右到左遍历
行不变,列变

 if (top <= bottom) {//判断一下top>bottom时,证明遍历完了,直接返回for (int i = right; i >=left; i--) {//i从右边开始,一直到大于等于left,进行--的操作res.push_back(array[bottom][i]);//尾插到bottom行,i列}bottom--;//bottom向上移动减少}

4.从下到上遍历
列不变,行变

    if (left <= right) {//当左边大于右边的时候,没有要遍历的了for (int i = bottom; i >= top; i--) {//i从bottom开始遍历到topres.push_back(array[i][left]);//尾插到left列}}left++;//完了之后left向左移动加加

最后,返回这个新数组res

完整代码

class Solution {
public:vector<int> spiralArray(vector<vector<int>>& array) {vector<int> res;if (array.empty() || array[0].empty()) {return res;}int left = 0;int right = array[0].size() - 1;int top = 0;int bottom = array.size() - 1;while (top <= bottom && left <= right) {for (int i = left; i <= right; i++) {res.push_back(array[top][i]);}top++;for (int i = top; i <= bottom; i++) {res.push_back(array[i][right]);}right--;if (top <= bottom) {for (int i = right; i >=left; i--) {res.push_back(array[bottom][i]);}bottom--;}if (left <= right) {for (int i = bottom; i >= top; i--) {res.push_back(array[i][left]);}}left++;}return res;}
};

总结

本道题要明确四个循环过程,进行四轮遍历就可以将二维数组都遍历上,也要注意取等号i>=right是要取到right这个边界的。总体来说,螺旋矩阵就是四个循环把握好,就简单了。希望我的理解对大家有帮助~

http://www.zhongyajixie.com/news/29424.html

相关文章:

  • 网站建设日程安排谷歌seo工具
  • php做的商城网站设计论文网络视频营销策略有哪些
  • 企业网站制作模板免费宁波网络营销怎么做
  • 网站建设 太原当阳seo外包
  • 广告网站建设流程网络营销策略论文
  • vue做的网站文字不能复制搜索引擎推广实训
  • 怎么实现网站建设报价方案旅游seo整站优化
  • 在家做兼职的比较靠谱的网站营销app
  • wordpress填写qq自动评论seo全称是什么
  • 丹阳疫情最新消息今天新增seo优化什么意思
  • 做黄色网站赚钱么网络广告策划的步骤
  • 做app和网站个人网站的制作
  • 中山大学精品课程网站火星时代教育培训机构怎么样
  • 做一个小说阅读网站怎么做百度热搜榜排名
  • 中英文外贸网站模板 生成静态html网址大全qq浏览器
  • 商标和logo的区别深圳专门做seo的公司
  • 家居装饰网站设计论文沈阳今日新闻头条
  • 网站建设就业前景2017济南搜索引擎优化网站
  • 在线旅游网站开发分析报告网络服务投诉平台
  • 买了网站模版怎么做百度搜索关键词查询
  • 小型服务器做网站网站的seo是什么意思
  • 蓝色网站模板永久免费自助建站平台
  • 做张家界旅游网站多少钱全网推广网站
  • 怎样做安居客网站百度小说搜索排行榜
  • WordPress 手机版跳转网站排名优化师
  • 成都哪家网站建设强seo有哪些作用
  • wordpress全站加速宁波网站推广运营公司
  • 甘肃建设厅官方网站项目负责人免费python在线网站
  • 企业网站及信息化建设关键词seo是什么意思
  • 手机端网站制作教程网络广告营销方案策划内容