leetcode#54螺旋矩阵

题目要求:
给定一个矩阵,按螺旋顺序输出各个元素

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

思路:
模拟螺旋线路,进行循环
每个大循环中嵌套四个小循环
分别输出该次循环右下左上顺序历遍的元素
即 最外层循环中包括
右向循环输出123
下循环输出69
左循环输出87
上循环输出4

实现:
思路很简单,但是对于循环边界的确定需要仔细思考,防止重复,遗落或者下标越界
定义now_row now_col两个变量,记录当前循环开始位置所处于的行列号。
然后根据规律,每次循环和上次循环,必定有行或者列之一保持一直,剩下的一个坐标为前一次坐标的±1范围。整个循环的终止条件为输出长度等于矩阵中总的元素数量
还有就是每次输出之后,那下一次行或列的长度,就需要减一以防止输出重复元素

代码

class Solution:
    def spiralOrder(self, matrix):
        m = 0
        now_r = 0
        row_lenth = len(matrix)
        col_lenth = len(matrix[0])
        all_num = row_lenth*col_lenth
        now_c = 0
        res = []
        while(len(res)<all_num):
            for j in range(now_c,now_c+col_lenth):
                res.append(matrix[m][j])
            if len(res) == all_num:
                break
            now_r = m+1
            row_lenth-=1
            for p in range(now_r,now_r+row_lenth):
                res.append(matrix[p][j])
            if len(res) == all_num:
                break
            now_c = j-1
            col_lenth-=1
            for q in range(now_c,now_c-col_lenth,-1):
                res.append(matrix[p][q])
            if len(res) == all_num:
                break
            now_r = p-1
            row_lenth-=1
            for m in range(now_r,now_r-row_lenth,-1):
                res.append(matrix[m][q])
            if len(res) == all_num:
                break
            now_c = q +1
            col_lenth-=1
        return res

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]
print(Solution().spiralOrder(matrix))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据中心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了主题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的组织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值