美文网首页
12.LeetCode刷题For Swift·59. Spira

12.LeetCode刷题For Swift·59. Spira

作者: 富城 | 来源:发表于2021-01-04 10:48 被阅读0次

1、原题

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

示例:

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

2、思路

理解了这个题的逻辑,方法就很简单了,主要还是确定上下左右边界,一条边一条边填充。

3、代码

class Solution {
    func generateMatrix(_ n: Int) -> [[Int]] {
        // 定义上下左右边界,
        var top = 0
        var right = n - 1
        var bottom = n - 1
        var left = 0
        // 返回结果
        var result = [[Int]](repeating: [Int](repeating: 0, count: n), count:n)
        // 初始值从1开始
        var num = 1
        // 结束值
        let target = n * n
        while num <= target {
            // 从左到右从上倒下开始排列
            for i in stride(from: left, through: right, by: 1) {
                result[top][i] = num
                num += 1
            }
            // 排完一列,内缩
            top += 1
            for i in stride(from: top, through: bottom, by: 1) {
                result[i][right] = num
                num += 1
            }
            right -= 1
            for i in stride(from: right, through: left, by: -1) {
                result[bottom][i] = num
                num += 1
            }
            bottom -= 1
            for i in stride(from: bottom, through: top, by: -1) {
                result[i][left] = num
                num += 1
            }
            left += 1
        }
        return result
    }
}

相关文章

  • 12.LeetCode刷题For Swift·59. Spira

    1、原题 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例...

  • leedcode刷题swift

    /**给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回...

  • 刷题Leetcode - swift

    难度系数: 简单:✨ 中等:✨✨ 困难:✨✨✨ 1、两数之和 ✨ 给定一个整数数组 nums 和一个目标值 tar...

  • Swift 算法刷题

    目标一周刷2道题也不知道能坚持几天,这玩意在leetcode做完怎么保存啊 给一个有序的数组,数组中有重复数字,输...

  • LintCode 59. 3Sum Closest

    原题 LintCode 59. 3Sum Closest Description Given an array S...

  • Spira

    “如果你害怕睁开眼睛 我将成为你的双眼 为你展现 一千种天空” “如果你害怕得到解脱 我将成为你的翅膀 带你远翔”...

  • 刷题刷题

    时间紧迫,任务繁重,又有疫情影响,搞的人心惶惶,一时间复习得不安宁,又舍不得摆烂。 在焦灼、惶恐的情绪中,紧张急迫...

  • Swift-从字符串匹配看普通算法与KMP算法

    最近在leetcode上刷题,当然,是用swift,中间的辛酸经历就不提了,不得不说swift在便利性上的确十分强...

  • 2022-09-16

    刷题,刷题还是刷题

  • 2018-07-16

    刷题,祸害的何止是教育? 报班,刷题;买练习册,刷题;家教,刷题;跟不上,刷题;学得好,刷题;为了抢跑,刷题;为了...

网友评论

      本文标题:12.LeetCode刷题For Swift·59. Spira

      本文链接:https://www.haomeiwen.com/subject/xzwmoktx.html