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

湖南网站网络推广哪家奿个人简历封面

湖南网站网络推广哪家奿,个人简历封面,建设项目公告网站,中国建筑是国企还是央企54. 螺旋矩阵 - 力扣(LeetCode) 先放自己写了好久的模拟代码,自己都被 i 和 j 搞晕了T_T最后还要特判,如果行和列的最小值为奇数,特殊处理一下最中心的数字。更详细的解释放在下面官方题解的代码上。这里对应的是官方…

54. 螺旋矩阵 - 力扣(LeetCode)

先放自己写了好久的模拟代码,自己都被 i 和 j 搞晕了T_T最后还要特判,如果行和列的最小值为奇数,特殊处理一下最中心的数字。更详细的解释放在下面官方题解的代码上。这里对应的是官方题解的方法二“按层遍历”。

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<>();int m = matrix.length, n = matrix[0].length;int turn = Math.min(m, n) / 2;for(int i = 0; i < turn; i++) { //需要转圈的次数for(int j = i; j < n - i; j++) { //遍历上res.add(matrix[i][j]);}for(int j = i + 1; j < m - i; j++) { //遍历右res.add(matrix[j][n-1-i]);}for(int j = n - 2 -i; j >= i; j--) { //遍历下res.add(matrix[m-1-i][j]);}for(int j = m - 2 - i; j > i; j--) { //遍历左res.add(matrix[j][i]);}}if(turn * 2 != m && turn * 2 != n) {if(m > n) {for(int i = turn; i < m - turn; i++){res.add(matrix[i][n/2]);}} else {for(int i = turn; i < n - turn; i++){res.add(matrix[m/2][i]);}}}return res;}
}

看完自己的一大堆,再看官方的长代码都觉得眉清目秀了呢【bushi】其实两份代码思路是一样的,将矩阵看成若干层,先输出最外面一圈,接着继续输出第二圈,直到遍历结束。

依据题意,对于每层,从左上方开始顺时针遍历所有元素。当前层的左上角的坐标设为 (top, left),右下角坐标设为 (bottom, right)。角落处的数字在哪一侧遍历都可以,只要保证不会重复遍历即可(这里我跟官方题解稍微有一点出入)。

  • 遍历上侧,(top, left) 到 (top, right)
  • 遍历右侧,(top + 1, right) 到 (bottom, right)
  • 遍历下侧,(bottom, right - 1) 到 (bottom, left)
  • 遍历左侧,(bottom - 1, left ) 到 (top + 1, left)

遍历完当前层的元素之后,将 left 和 top 分别增加 1,将 right 和 bottom 分别减少 1,进入下一层继续遍历,直到遍历完所有元素为止。需要额外注意最中心的那层,如果是单行或者单列,会重复遍历。所以在遍历下侧和遍历左侧时,需要前提条件:如果 left < right 且 top < bottom 才遍历。

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<Integer>();int rows = matrix.length, columns = matrix[0].length;int left = 0, right = columns - 1, top = 0, bottom = rows - 1;while(left <= right && top <= bottom) {for(int i = left; i <= right; i++) {res.add(matrix[top][i]);}for(int i = top + 1; i <= bottom; i++) {res.add(matrix[i][right]);}if(left < right && top < bottom) {for(int i = right - 1; i >= left; i--) {res.add(matrix[bottom][i]);}for(int i = bottom - 1; i > top; i--) {res.add(matrix[i][left]);}}left++;right--;top++;bottom--;}return res;}
}

文章转载自:

http://pfgscyaE.sLtfk.cn
http://2tbFuirU.sLtfk.cn
http://DkUn4Koq.sLtfk.cn
http://aVAniYT2.sLtfk.cn
http://dZlYB1TY.sLtfk.cn
http://uBO6lPQi.sLtfk.cn
http://gXDTEIvY.sLtfk.cn
http://7V1gQYR2.sLtfk.cn
http://PKPr0yzH.sLtfk.cn
http://tc7tFru3.sLtfk.cn
http://8KJBWsvi.sLtfk.cn
http://mZss7DAi.sLtfk.cn
http://gXxmH8v4.sLtfk.cn
http://nSSfVBqb.sLtfk.cn
http://IYilkkkg.sLtfk.cn
http://KIG1G1LJ.sLtfk.cn
http://GfJs5ly4.sLtfk.cn
http://9DbcdtZh.sLtfk.cn
http://Nb7ZnYtW.sLtfk.cn
http://f0rGZI0T.sLtfk.cn
http://GPoKdn9I.sLtfk.cn
http://ddPpSJP2.sLtfk.cn
http://PvZExlZt.sLtfk.cn
http://3ofeCPb2.sLtfk.cn
http://r3zsboQR.sLtfk.cn
http://QW6DsYUX.sLtfk.cn
http://1udNdF4S.sLtfk.cn
http://gDl1wa7r.sLtfk.cn
http://Gtlw16z6.sLtfk.cn
http://7RP3L8dj.sLtfk.cn
http://www.dtcms.com/wzjs/610489.html

相关文章:

  • windows和linux做网站中国500强企业排名表
  • 零基础建设网站教程重庆在建工程项目
  • 怎么做一家网站护理专业简历
  • 北京网站建设app阿里云做网站电话
  • 高校档案馆网站建设淘宝客手机网站搭建
  • 网站定制文章列表项怎么做信用门户网站建设规范
  • 站长推荐跳转企业网站的宣传功能体现在()
  • 现在c 做网站用什么框架安徽网络推广排名
  • sql 新建网站汕头百度公司
  • 网上服装商城网站代码第二季企业网站开发
  • 网站关键词排名怎么做上去影视广告制作报价单
  • 单网页网站wordpress主题的网页
  • 上海网站建设过程北京建筑工程公司
  • 百度网站建设中心福建建设执业资格注册中心网站
  • 西安做网站广告的公司网站结构建设方案
  • 网站建设找超速云软装设计网站有哪些
  • 网站建设书 模板下载重庆网页优化seo
  • 深圳专业专业网站设计公司如何弄死一个网站
  • 网站建 设方案说明书设计一个企业网站多少钱
  • 支付单页网站模板杭州建设工程招投标
  • 网站创意设计公司网站建设ppt简介
  • 做一个公司的门户网站多少钱福州科技网站建设怎么做
  • 做平台网站多少钱小米云网站开发
  • 在哪个网站做视频好赚钱整容网站模板
  • 个人兼职网站建设网站服务器管理系统
  • 有没有一些帮做名片的网站公益网站怎么做
  • 新乡彩票网站建设wordpress忘记用户名密码
  • 青岛营销型网站建设扫描网站漏洞的软件
  • 旧笔记本 做网站局域网内建网站
  • 网站流量的作用网站广告链接怎么做