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

nginx做网站百度售后客服电话24小时

nginx做网站,百度售后客服电话24小时,南宁网站开发,在xampp下搭建本地网站问题描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入: matrix [[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,3,6,9,8,7,4,5]示例 2: 输入: ma…

问题描述

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

示例 1:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入: matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出: [1,2,3,6,9,8,7,4,5]

示例 2:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出: [1,2,3,4,8,12,11,10,9,5,6,7]

提示:

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

分析解答

  • 定义四个边界

    • top 表示当前上边界,初始为 0。
    • bottom 表示当前下边界,初始为 m - 1
    • left 表示当前左边界,初始为 0。
    • right 表示当前右边界,初始为 n - 1
  • 循环遍历矩阵

    • 从左到右遍历顶部边界,然后将 top 下移。
    • 从上到下遍历右边界,然后将 right 左移。
    • 从右到左遍历底部边界(如果还没有遍历过),然后将 bottom 上移。
    • 从下到上遍历左边界(如果还没有遍历过),然后将 left 右移。
function spiralOrder(matrix) {if (matrix.length === 0) return [];const result = [];let top = 0, bottom = matrix.length - 1;let left = 0, right = matrix[0].length - 1;while (top <= bottom && left <= right) {// 从左到右遍历顶部for (let i = left; i <= right; i++) {result.push(matrix[top][i]);}top++;// 从上到下遍历右边界for (let i = top; i <= bottom; i++) {result.push(matrix[i][right]);}right--;// 从右到左遍历底部if (top <= bottom) {for (let i = right; i >= left; i--) {result.push(matrix[bottom][i]);}bottom--;}// 从下到上遍历左边界if (left <= right) {for (let i = bottom; i >= top; i--) {result.push(matrix[i][left]);}left++;}}return result;
}// 测试示例
console.log(spiralOrder([[1,2,3],[4,5,6],[7,8,9]])); // 输出: [1,2,3,6,9,8,7,4,5]
console.log(spiralOrder([[1,2,3,4],[5,6,7,8],[9,10,11,12]])); // 输出: [1,2,3,4,8,12,11,10,9,5,6,7]

遍历矩阵

  • 按顺时针顺序依次遍历上、右、下、左四个边界,将对应的元素添加到结果数组中。
  • 每遍历完一个边界,就缩小对应的边界值,逐渐向内层推进。
  • 使用条件判断来避免重复遍历同一行或同一列。

if (top <= bottom)if (left <= right) 的作用:

  1. if (top <= bottom) 的作用

    • 当从左到右遍历完 top 行,以及从上到下遍历完 right 列后,会将 bottom 行从右到左遍历。
    • 然而,有可能在遍历 top 行之后,top 已经超过了 bottom(说明已经没有未遍历的行),所以需要先判断 top <= bottom 是否成立。如果不成立,说明不需要再遍历 bottom 行,避免重复处理。
  2. if (left <= right) 的作用

    • 当从右到左遍历完 bottom 行后,会将 left 列从下到上遍历。
    • 同理,如果在遍历 right 列之后,left 已经超过了 right(说明已经没有未遍历的列),那么就不需要再遍历 left 列。因此,先判断 left <= right 是否成立。

复杂度分析

  • 时间复杂度:O(m×n)O(m \times n)O(m×n),因为每个元素会被访问一次。
  • 空间复杂度:O(1)O(1)O(1),除了返回结果外,额外使用的空间是常数级别。

思路拓展

http://www.yidumall.com/news/72803.html

相关文章:

  • 最简单网站设计的代码石狮seo
  • 黄石网站制作google优化推广
  • 梅江区建设局网站友情链接导航
  • html5做网站的总结友情链接图片
  • 北京网站建设价格便宜app推广赚钱平台
  • 淮南发布湖州seo排名
  • 专业建站公司设计方案百度免费注册
  • 官方网站下载万能钥匙免费网站怎么注册
  • 工业产品设计与创客实践项目如何优化网络连接
  • 大气网络公司网站模板邀请注册推广赚钱的app
  • 如何设计b2c电子商务网站百度推广怎么运营
  • 辉县网站建设求职简历打开百度网页
  • 线上平台建设计划书怎么写优化设计电子课本下载
  • 深圳靠谱网站建设公司百度企业推广
  • 经营性网站icp优化网站视频
  • 昆明网页设计培训学校上海优化排名网站
  • 企业3合1网站建设价格网络营销的专业知识
  • wordpress中文安装竟然是英文的seo自动发布外链工具
  • 电信外包有必要去吗seo广告优化
  • 做网站的公司赚钱吗宁波seo整站优化软件
  • 做网站托管百度指数快刷软件
  • 怎么看得出网站是哪个公司做的注册网站域名
  • wordpress permalinks冯耀宗seo教程
  • 企业网站备案信息汕头seo外包平台
  • 熟人做网站怎么收钱app营销模式有哪些
  • 珠宝网站形象设计如何制作付费视频网站
  • 学做游戏 网站文娱热搜榜
  • 成都h5模板建站北京网站推广公司
  • 描述对于营销型网站建设很重要飘红效果更佳带佣金的旅游推广平台有哪些
  • 海南省建设质安监管局网站百度软件安装