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

家居网站源码上海网站建设服务

家居网站源码,上海网站建设服务,做网站的好公司有哪些,仿站WordPress螺旋矩阵 题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2:…

螺旋矩阵

题目描述:

给你一个 m 行 n 列的矩阵 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

思路分析:

  1. 初始化边界
    首先,我们需要定义四个边界变量,分别表示矩阵的上边界(top)、下边界(bottom)、左边界(left)和右边界(right)。初始时,这些边界分别设置为矩阵的第一行、最后一行、第一列和最后一列。

  2. 循环遍历
    使用一个循环来遍历矩阵的边界。在每次循环中,我们按照顺时针的顺序遍历矩阵的四个边界(上、右、下、左),并将遍历到的元素添加到结果列表中。

  3. 更新边界
    在遍历完每个边界后,我们需要根据遍历的方向来更新相应的边界变量。具体来说:

    • 遍历完上边界后,上边界下移(top++)。
    • 遍历完右边界后,右边界左移(right--)。
    • 遍历完下边界后,下边界上移(bottom--)。
    • 遍历完左边界后,左边界右移(left++)。
  4. 终止条件
    循环会一直进行,直到四个边界交叉,即左边界超过右边界(left > right)或上边界超过下边界(top > bottom)。这时,表示矩阵中的所有元素都已经被遍历完毕,可以结束循环。

  5. 返回结果
    循环结束后,返回存储了按顺时针螺旋顺序遍历的矩阵元素的结果列表。

        注意,在遍历右边界和下边界时,需要添加一个检查来确保内部还有元素需要遍历。这是因为当矩阵的行数或列数为奇数时,遍历完上边界和左边界后,右边界或下边界可能只剩下单独的一行或一列。如果不进行检查,就会在这一行或一列上重复遍历,导致结果错误。

代码实现:

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> result = new ArrayList<>(); // 初始化结果列表  if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {  // 如果矩阵为空或没有行/列,则直接返回空的结果列表  return result;  }  int left = 0, right = matrix[0].length - 1; // 初始化左右边界  int top = 0, bottom = matrix.length - 1; // 初始化上下边界  while (left <= right && top <= bottom) {  // 遍历上边界  for (int i = left; i <= right; i++) {  result.add(matrix[top][i]); // 将上边界的元素添加到结果列表中  }  top++; // 上边界下移  // 遍历右边界  for (int i = top; i <= bottom; i++) {  result.add(matrix[i][right]); // 将右边界的元素添加到结果列表中  }  right--; // 右边界左移  // 检查是否还有内部元素需要遍历(避免在只剩一行或一列时重复遍历)  if (top <= bottom) {  // 遍历下边界  for (int i = right; i >= left; i--) {  result.add(matrix[bottom][i]); // 将下边界的元素添加到结果列表中  }  bottom--; // 下边界上移  }  if (left <= right) {  // 遍历左边界  for (int i = bottom; i >= top; i--) {  result.add(matrix[i][left]); // 将左边界的元素添加到结果列表中  }  left++; // 左边界右移  }  }  return result; // 返回结果列表  }
}
http://www.dt0577.cn/news/11801.html

相关文章:

  • 2018做网站企业seo关键字优化
  • 微信淘宝购物券网站是怎么做的营销公司排行
  • 邯郸网站设计制作一键优化免费下载
  • 合肥效果好的网站推广自己做网站设计制作
  • 房地产网站开发公司电话百度热搜广告设计公司
  • 汶上1500元网站建设百度信息流开户多少钱
  • 三亚谁做网站怎么在百度上推广自己
  • 做噯噯的网站阿里云域名注册
  • 做美食视频的网站有哪些网络推广与推广
  • 外贸商城网站 定制产品线上推广渠道
  • 上海 网络推广seo优化诊断
  • 网页制作与网站建设策划书案例网上推销产品的软件
  • 做视频网站需要什么架构合肥网络优化推广公司
  • 西安网站建设公司电话关键字优化用什么系统
  • sem代运营seo标题优化步骤
  • 新手用jsp做网站宁波网络推广优化公司
  • 南阳做网站推广seo方式包括
  • 国人在线做网站企业seo培训
  • 搬瓦工putty做网站什么是网络推广营销
  • 玉树营销网站建设百度搜索热词查询
  • 公司网站建设考核数据平台
  • 怎样做网站banner优化网站排名解析推广
  • 中山市seo简单优化
  • 服装设计网站有哪些推荐百度官网进入
  • 金顺广州外贸网站建设百度竞价推广开户
  • 检察院加强网站建设成都百度快照优化排名
  • 专业网站建设设计装饰销售的技巧与口才
  • qq网站登录入口培训seo去哪家机构最好
  • html5搭建网页游戏优化师培训
  • 网站首页设计方案网址提交