【LeetCode-中等题】59. 螺旋矩阵 II

这篇具有很好参考价值的文章主要介绍了【LeetCode-中等题】59. 螺旋矩阵 II。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

【LeetCode-中等题】59. 螺旋矩阵 II,leetcode,矩阵,算法

方法一:二维数组缩圈填数字

【LeetCode-中等题】59. 螺旋矩阵 II,leetcode,矩阵,算法

定义四个边界条件,每转一圈,把数值填进去,然后缩小一圈,直到不满足条件位置
结束循环条件可以是:
两种结束条件都可以,但是一定要注意每次处理一条边界的范围 不能重复赋值文章来源地址https://www.toymoban.com/news/detail-707794.html

 while(right >= left && bom >= top){//结束转圈条件(边界不满足)
        //while(count <= n * n){//结束转圈条件(填写数值到最大了  无需填了)    
      
class Solution {
//方法一  : 定义四个边界条件,每转一圈,就缩小一圈,直到不满足条件位置
    public static int[][] generateMatrix(int n) {
        int[][] res = new int[n][n];
        int left = 0;
        int right = n-1;
        int top = 0;
        int bom = n-1;
        int count = 1;//计数器
        while(right >= left && bom >= top){//结束转圈条件
        //while(count <= n * n){//结束转圈条件     两种结束条件都可以
            //上左闭右闭
            for(int i = left;i<=right ; i++){
                res[top][i] = count;
                count++;
            }
            //右   上开下闭
            for(int i = top+1;i<=bom ; i++){
                res[i][right] = count;
                count++;
            }
            //下   左闭右开
            for(int i = right-1;i>=left ; i--){
                res[bom][i] = count;
                count++;
            }
            //左 下开上开
            for(int i = bom-1;i>top ; i--){
                res[i][left] = count;
                count++;
            }
            //缩小一圈   修改四个边界
            left++;
            right--;
            top++;
            bom--;
        }
        return res;
    }
}

方法二:

到了这里,关于【LeetCode-中等题】59. 螺旋矩阵 II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Day2:(1)有序数组的平方(2)长度最小的子数(3)Leetcode 59螺旋矩阵II

    (1)解析 Leetcode977 参考文章 参考视频 (2)思路 一开始考虑不采用新建一个新数组,在原数组上实现有序数组平方的排序,实现起来比较繁琐,细节会有些小错,后来采用新建数组的方式: 定义一个新数组resVec,和A数组一样的大小;让index指向resVec数组当前可插入元素的位

    2023年04月08日
    浏览(95)
  • LeetCode-Day2-977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,

    双指针法,原来数组是有序的,说明平房之后最左和最右两边的平方和是最大的,比较最大的插入新的vector数组,然后移动指针选下一个元素进行比较。 接下来就开始介绍数组操作中另一个重要的方法: 滑动窗口 。 所谓滑动窗口, 就是不断的调节子序列的起始位置和终止

    2024年02月16日
    浏览(35)
  • 【LeetCode题目详解】 977.有序数组的平方 209.长度最小的子数组59.螺旋矩阵II day2

    看完这个题目第一想法就是直接暴力解决,直接将全部平方然后进行排序。比如快排。 代码如下: 时间复杂度是 O(nlogn)或者说【O(n + nlogn)】,括号里面这个是为了比较接下来的方法。 然后看了代码随想录的视频学习了用双指针来写这道题的方法(说实话不看视频真没想到可

    2024年02月13日
    浏览(33)
  • 看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题59螺旋矩阵II) 2023.4.20

    本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可,撰写本文章主要目的在于记录自己学习体会并分享给大家,全篇并不仅仅是复制粘贴,更多的是加入了自己的思考,希望读完此篇文章能真正帮助到您!!! 力扣题目链接 分析题目: 元素按照 顺时

    2024年02月05日
    浏览(33)
  • leetcode 59.螺旋矩阵

    记录一下,觉得倒水思想来做 总体看起来还是比较清晰的。

    2024年02月16日
    浏览(24)
  • LeetCode59-螺旋矩阵||

    题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1 输出:[ [1] ] 读题获取信息 生成的是正整数的正方形 因此如果 n为偶数,那么正方形由

    2023年04月08日
    浏览(26)
  • 【代码随想录 | Leetcode | 第四天】数组 | 螺旋矩阵 | 59

    欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来螺旋矩阵的分享 ✨ 给你一个正整数 n ,生成一个包含 1 到 n 2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 示例 2: 提示: 思路: 本类型题目其实都不涉及什么算法,就是模拟

    2024年02月16日
    浏览(37)
  • 【代码随想录 | Leetcode | 第四天】数组 | 螺旋矩阵 | 59-54

    欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来螺旋矩阵的分享 ✨ 给你一个正整数 n ,生成一个包含 1 到 n 2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 示例 2: 提示: 思路: 本类型题目其实都不涉及什么算法,就是模拟

    2024年02月16日
    浏览(35)
  • Leetcode 977-有序数组的平方 | LeetCode209-长度最小的子数组 | Leetcode59-螺旋矩阵

    给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 思考: 这个数组为有序数组,那么即使前面有负的,数组平方的最大值只能是在数组的倆端,不是在左边就是右边,不可能是在中间 由此想到双指针做法,left从

    2024年02月16日
    浏览(39)
  • 算法训练 Day 2 | 数组:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

    977. 有序数组的平方 第一想法:暴力破解 看完题解想法:朝着双指针方向想 遇到困难: 用双指针的话,一开始想到两边指针往中间靠,逐个将最大值赋给结果数组。和题解不同的是,循环条件我写了  while (left != right) {...} ,相比于题解的  while (left = right) {...} ,我需要在后

    2023年04月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包