LeetCode实战:螺旋矩阵 II

news/2024/7/5 5:16:11

题目英文

Given a positive integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order.

Example:

Input: 3
Output:
[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]
]

题目中文

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。

示例:

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

算法实现

public class Solution
{public int[][] GenerateMatrix(int n){int[][] matrix = new int[n][];for (int i = 0; i < n; i++){matrix[i] = new int[n];}int start = 0;//起始位置int end1 = n - 1;//最左边位置int end2 = n - 1;//最下边位置int count = 1;while (start < end1 && start < end2){LeftToRight(start, end1, start, matrix, ref count);TopToBottom(start + 1, end2, end1, matrix, ref count);RightToLeft(end1 - 1, start, end2, matrix, ref count);BottomToTop(end2 - 1, start + 1, start, matrix, ref count);start++;end1 = n - 1 - start;end2 = n - 1 - start;}if (n%2 == 1){matrix[start][start] = count;}return matrix;}private void LeftToRight(int start, int end, int rowIndex, int[][] matrix, ref int from){for (int i = start; i <= end; i++){matrix[rowIndex][i] = from;from++;}}private void TopToBottom(int start, int end, int colIndex, int[][] matrix, ref int from){for (int i = start; i <= end; i++){matrix[i][colIndex] = from;from++;}}private void RightToLeft(int start, int end, int rowIndex, int[][] matrix, ref int from){for (int i = start; i >= end; i--){matrix[rowIndex][i] = from;from++;}}private void BottomToTop(int start, int end, int colIndex, int[][] matrix, ref int from){for (int i = start; i >= end; i--){matrix[i][colIndex] = from;from++;}}}

实验结果

  • 状态:通过
  • 20 / 20 个通过测试用例
  • 执行用时: 296 ms, 在所有 C# 提交中击败了 97.67% 的用户
  • 内存消耗: 25 MB, 在所有 C# 提交中击败了 11.11% 的用户

提交结果


相关图文

1. “数组”类算法

  • LeetCode实战:三数之和
  • LeetCode实战:最接近的三数之和
  • LeetCode实战:求众数
  • LeetCode实战:缺失的第一个正数
  • LeetCode实战:快乐数
  • LeetCode实战:寻找两个有序数组的中位数
  • LeetCode实战:盛最多水的容器
  • LeetCode实战:删除排序数组中的重复项
  • LeetCode实战:搜索旋转排序数组
  • LeetCode实战:螺旋矩阵

2. “链表”类算法

  • LeetCode实战:两数相加
  • LeetCode实战:删除链表的倒数第N个节点
  • LeetCode实战:合并两个有序链表
  • LeetCode实战:合并K个排序链表
  • LeetCode实战:两两交换链表中的节点
  • LeetCode实战:旋转链表
  • LeetCode实战:环形链表

3. “栈”类算法

  • LeetCode实战:有效的括号
  • LeetCode实战:最长有效括号
  • LeetCode实战:逆波兰表达式求值

4. “队列”类算法

  • LeetCode实战:设计循环双端队列
  • LeetCode实战:滑动窗口最大值
  • LeetCode实战:整数反转
  • LeetCode实战:字符串转换整数 (atoi)

5. “递归”类算法

  • LeetCode实战:爬楼梯

6. “字符串”类算法

  • LeetCode实战:反转字符串
  • LeetCode实战:翻转字符串里的单词
  • LeetCode实战:最长公共前缀
  • LeetCode实战:字符串相加
  • LeetCode实战:字符串相乘

7. “树”类算法

  • LeetCode实战:相同的树
  • LeetCode实战:对称二叉树
  • LeetCode实战:二叉树的最大深度
  • LeetCode实战:将有序数组转换为二叉搜索树

8. “哈希”类算法

  • LeetCode实战:两数之和

9. “搜索”类算法

  • LeetCode实战:搜索二维矩阵

10. “动态规划”类算法

  • LeetCode实战:最长回文子串
  • LeetCode实战:最大子序和

11. “回溯”类算法

  • LeetCode实战:全排列

11. “数值分析”类算法

  • LeetCode实战:回文数
  • LeetCode实战:x 的平方根

http://lihuaxi.xjx100.cn/news/255246.html

相关文章

你见过哪些目瞪口呆的 Java 代码技巧?

欢迎关注方志朋的博客&#xff0c;回复”666“获面试宝典来源&#xff1a;blog.csdn.net/zl1zl2zl3/article/details/85196627技术点开发工具BeanBean 的验证拥抱 lombok重构设计模式技能总结技术点本文不是一个吹嘘的文章&#xff0c;不会讲很多高深的架构&#xff0c;相反&am…

时评:大学徒见“大门”不见“大师”

日前&#xff0c;网上一个关于大学豪华校门排行的帖子&#xff0c;在社会上引起广泛关注&#xff0c;其中山东聊城大学校门被爆花了8000万元。面对记者采访&#xff0c;该大学宣传部长刘树山颇为气愤&#xff0c;认为有人损害学校声誉&#xff0c;并准备起诉。他说该校大门总共…

我在MIT人工智能研究实验室工作一年学到的 5 件事!

Datawhale干货 作者&#xff1a;刘冰一、Ailleurs&#xff0c;来源&#xff1a;AI科技评论编辑 | 陈彩娴Mike Ferguson &#xff0c;麻省理工学院大脑和认知科学系 (MIT BCS) 担任研究软件工程师/ML工程师。专门研究 Brain-Score&#xff08;一种衡量类脑 AI 的工具&#xff09…

JavaScript夯实基础系列(四):原型

在JavaScript中有六种数据类型&#xff1a;number、string、boolean、null、undefined以及对象&#xff0c;ES6加入了一种新的数据类型symbol。其中对象称为引用类型&#xff0c;其他数据类型称为基础类型。在面向对象编程的语言中&#xff0c;对象一般是由类实例化出来的&…

沃通免费SSL证书申请指南

我们在做一些exchange或lync项目的时候很多时候都会用到公网证书&#xff0c;比如&#xff1a;我们做exchange2013和Office 365混合部署&#xff0c;或者通过SEM暂存迁移或CEM直接转换迁移的时候都需要用到公网证书,下面为大家介绍1个免费的SSL证书及申请的方法&#xff0c;希望…

QQ订阅

QQREADER587942BFBAD32B1F转载于:https://www.cnblogs.com/zengyangtech/archive/2010/05/19/1744150.html

生于俄罗斯的 Web 服务器王者 Nginx,现宣布俄罗斯禁止贡献!

作者 | 苏宓出品 | CSDN不久之前&#xff0c;一些底层工具、软件、开源项目相继宣布在俄罗斯停服&#xff0c;彼时也有不少开发者呼吁 Nginx 是时候进行反限制了。万万没想到&#xff0c;就在国际局势发生改变的一个月后&#xff0c;Nginx 动了手&#xff0c;但是有些「意料之外…

发了6篇SCI的师兄告诉我的秘密:科研工具推荐合集!

Datawhale干货 作者&#xff1a;科研情报站BioSCI 知乎&#xff0c;编辑&#xff1a;极市平台极市导读 作为一个平时就很辛苦的科研er&#xff0c;本着能用工具解决的问题绝对不花苦力的原则&#xff0c;收集了很多科研利器&#xff0c;现在分享给大家&#xff0c;相信大家看完…