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

正规网站建设官网网站地图如何做

正规网站建设官网,网站地图如何做,赣州有哪些公司,山东省建设工程信息网站1.题目介绍给定一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。提示&#xff1a;m matrix.lengthn matrix[i].length1 < m, n < 10-100 < matrix[i][j] < 1002.解决思路一个猛然看起来很简单的一个问题&…

1.题目介绍

        给定一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 10
  • -100 <= matrix[i][j] <= 100

2.解决思路

        一个猛然看起来很简单的一个问题,但是想要解决需要细心,并且注意其复杂度。这道题有很多种解法,我这里提供一个我的思路。既然是按照顺时针进行遍历,那么就按照这个思路来进行,遍历很简单,所以问题就来到了拐点的判断,因为是转圈向内,所以要避免重复走到外层元素。这里采用在解决矩阵问题时很常见的方案:矩阵副本,即创建一个额外的矩阵用来记录原矩阵的某种状态,以实现隔离。这里记录的则是遍历过的位置,每次在进行遍历时,需要判断一下下一个位置在副本中对应位置有没有被标记过,被标记过表示需要拐弯,然后并把已经遍历过的位置在副本中对应位置进行标记。

3.步骤讲解

        1.变量m表示矩阵行数,变量n表示矩阵的列数

        2.定义临时二维数组作为副本矩阵,大小和原二维数组一致

        3.创建结果集合,以及一个计数器,控制遍历的次数

        4.进行循环,创建临时变量i和j,表示元素在二维数组中的位置。遍历次数为m*n,即总元素的个数,从[0][0]开始遍历

        5.按情况进行判断,顺时针含向右、向下、向左、向上四种状态。分两种情况,遍历为外层和非最外层时,要分开讨论,避免索引越界。

                向下移动:最外层时:当前所在列在最右侧且下一行不是边界;非最外层时:下一列不                                    是边界且下一行不是边界且副本中下一列值为1且下一行值不为1。

                                  将当前值存入结果集合,在副本矩阵中标记对应位置为1,行索引+1.

                 向左移动:最外层时:当前行在最下侧且不在最右侧且副本矩阵对应位置前一列值不为                                     1;非最外层时:当前列不在最左侧,且下一行不是边界且副本矩阵下一行                                       值为1且前一列不为1。

                                   将当前值存入结果集合,在副本矩阵中标记对应位置为1,列索引-1.

                  向上移动:最外层时:当前列在最左侧且上一行不是顶层;非最外层时:当前列不在                                        最左侧且当前行不在最顶层且副本矩阵中对应位置前一列值为1且上一行值                                      不为1。               

                                    将当前值存入结果集合,在副本矩阵中标记对应位置为1,行索引-1.

                  向上移动:处上面几种情况外,就是向右移动,最初始时同样是向右移动。

                                    将当前值存入结果集合,在副本矩阵中标记对应位置为1,列索引+1.

        6.最终将结果集合返回

4.代码展示

public static List<Integer> spiralOrder(int[][]  matrix){int m = matrix.length;int n = matrix[0].length;//定义临时数组记录访问位置int[][] temp = new int[matrix.length][matrix[0].length];//结果集合List<Integer> res = new ArrayList<>();//一共要遍历m*n次int k = 0;for (int i = 0,j = 0;k<m*n;k++){//向下移动if (j == n-1 && i+1 != m || (j+1 != n && i+1 != m && temp[i][j+1] == 1 && temp[i+1][j] != 1)){res.add(matrix[i][j]);temp[i][j] = 1;//System.out.println(matrix[i][j]+"向下移动");i++;continue;}//向左移动if (i == m-1 && j != 0 && temp[i][j-1] != 1|| (j != 0 && i+1 != m && temp[i+1][j] == 1 && temp[i][j-1] != 1)){res.add(matrix[i][j]);temp[i][j] = 1;//System.out.println(matrix[i][j]+"向左移动");j--;continue;}//向上移动if ((j == 0 && i-1 > 0) || (j != 0 && i!= 0 && temp[i][j-1] == 1 && temp[i-1][j] != 1)){res.add(matrix[i][j]);temp[i][j] = 1;//System.out.println(matrix[i][j]+"向上移动");i--;continue;}//向右移动res.add(matrix[i][j]);temp[i][j] = 1;//System.out.println(matrix[i][j]+"向右移动");j++;}return res;}

5.执行结果

在leetcode中测试用例平均耗时0ms

内存分布40.64MB 

 


文章转载自:

http://Xa3anpZL.tsgxz.cn
http://TKVZtlZl.tsgxz.cn
http://myGHP8Pn.tsgxz.cn
http://LjLXwkLw.tsgxz.cn
http://DCtFH1MV.tsgxz.cn
http://9n84NzZC.tsgxz.cn
http://oisfOQZT.tsgxz.cn
http://P1R0QwgO.tsgxz.cn
http://hWsu4gDs.tsgxz.cn
http://0tr6pSI1.tsgxz.cn
http://RehcFtct.tsgxz.cn
http://eo7AhlSP.tsgxz.cn
http://FYG2xutG.tsgxz.cn
http://nlCKpikq.tsgxz.cn
http://oCg1C8et.tsgxz.cn
http://PzwCeu5g.tsgxz.cn
http://21bnAuzo.tsgxz.cn
http://rf8LQDw4.tsgxz.cn
http://vgqku6re.tsgxz.cn
http://LqxBg36z.tsgxz.cn
http://G0DSTnOv.tsgxz.cn
http://ROclLL21.tsgxz.cn
http://vzEnDZei.tsgxz.cn
http://Ihtcuu44.tsgxz.cn
http://qYXRhv61.tsgxz.cn
http://IDF27TDA.tsgxz.cn
http://qFWSZb5W.tsgxz.cn
http://A7TD6dJX.tsgxz.cn
http://dsc3c2Wr.tsgxz.cn
http://Nf0tsXeN.tsgxz.cn
http://www.dtcms.com/wzjs/778090.html

相关文章:

  • 润滑油东莞网站建设怎么给公司做简单网站
  • 滨江网站开发石家庄企业自助建站系统
  • 网站群建设管理办法joomla可以做预订类网站吗
  • 网站怎么做流量智能ai写作免费网站
  • 深圳找做兼职女上班的网站开网站 主机 服务器
  • 网站后台无法上传本地图片wordpress 文章空白页
  • 富阳做兼职的网站wordpress 登陆后跳转
  • 游戏租号网站怎么建设中国建设银行手机wap网站
  • 大学网站开发的流程图新浪云wordpress
  • 功能型网站开发湘潭建设公司网站
  • 网站建设石家庄企业网站新闻如何建设
  • 如何在网站做投票技术网站源码wordpress
  • 站酷网如何接单阿里巴巴专门做外贸的网站
  • 做好网站怎么做app做的好的茶叶网站
  • 帝国cms小说网站模板下载长沙最新死亡事件
  • 外贸建站哪个最便宜wordpress 总浏览数量
  • 大型网站 jquery我们为什么要学网站开发
  • 网站营销方式我自己做网站
  • 襄阳谷城网站建设昆明网站做的好的公司哪家好
  • 金山做网站的公司长春网络优化最好的公司
  • 宁波慈溪网站建设石家庄网页设计机构
  • 教你如何建设网站阿里去免费的网站域名查询app
  • 营销网站制作需要多少钱电子方案网站建设方案
  • 古镇灯饰网站建设服务wordpress 怎么置顶
  • 公司网站传图片网络架构模拟设计
  • 东台建设局官方网站wordpress输入命令
  • 如何免费开个人网站快速开发app
  • 北京保障性住房建设投资中心网站湛江仿站定制模板建站
  • 本机做网站如何访问享设计网做兼职设计师怎么样
  • 宝安印刷网站建设wordpress 插件有后门