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

网站外包要花多少钱高质量外链代发

网站外包要花多少钱,高质量外链代发,北京程序员公司有哪些,网页设计与网站建设ppt54. 螺旋矩阵 - 力扣(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://www.dtcms.com/wzjs/355635.html

相关文章:

  • 做网站如何报价下载班级优化大师并安装
  • 长沙开发网站的公司服务推广软文
  • 确定网站主题关键词检测
  • 制作网站的网站北京网络营销公司排名
  • 网站建设都是模板谷歌搜索引擎优化seo
  • 环境建设公司网站如何在国外推广自己的网站
  • 智能响应式网站重庆百度关键词推广
  • 电子商务网站开发视频seo推广软件哪个好
  • 天津做网站制作公司宁德市属于哪个省份
  • 国际设计师网站百中搜优化软件
  • 内蒙能源建设集团网站友情链接百科
  • 北京做网站制作公司黑帽seo培训大神
  • vps运行iis网站 需要输入账号和密码百度竞价开户费用
  • 东营seo免费关键词优化工具
  • 学会了dw就可以做网站吗企业seo排名优化
  • 企业门户网站建设情况免费html网页模板
  • 怎样建设公司的网站网络营销有哪些形式
  • 对网站的界面设计分析网站优化公司
  • 杭州做网站哪个公司好最好的网络营销软件
  • wordpress媒体库太大shopify seo
  • 安徽外经建设集团网站百度人工服务热线电话
  • 成都定制软件开发公司360优化大师app下载
  • 怎样做下载网站指数基金有哪些
  • 网站建设留言板实验心得如何进入网站
  • 应用商店下载安装app北京百度搜索优化
  • 石排网站建设外包公司排名
  • 做批发各类新书的网站百度电脑版网址
  • 网站认证怎么认证阿里大数据平台
  • 江苏省建设网站一号通优化关键词哪家好
  • 菜户营网站建设公司线上推广哪个平台最好