首页 > 编程语言 >[Python手撕]螺旋数组

[Python手撕]螺旋数组

时间:2024-09-10 16:15:06浏览次数:10  
标签:right matrix 螺旋 Python res List up 数组 left

class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        res = []

        left = 0
        right = len(matrix[0]) - 1
        down = len(matrix) - 1
        up = 0

        while left <= right and up <= down:
            if left <= right:
                for i in range(left, right + 1, 1):
                    res.append(matrix[up][i])
                up += 1
                if down >= up:
                    for i in range(up, down + 1, 1):
                        res.append(matrix[i][right])
                    right -= 1
                    if left <= right:
                        for i in range(right, left - 1, -1):
                            res.append(matrix[down][i])
                        down -= 1
                        if down >= up:
                            for i in range(down, up - 1, -1):
                                res.append(matrix[i][left])
                            left += 1

        return res

标签:right,matrix,螺旋,Python,res,List,up,数组,left
From: https://www.cnblogs.com/DCFV/p/18406620

相关文章

  • 基于python+flask框架的社区疫情防控网格数据管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在全球化背景下,疫情的传播速度和范围前所未有,对公共卫生体系构成了严峻挑战。社区作为疫情防控的第一线,其管理效率与精准度直接关系到疫情......
  • 基于python+flask框架的食物推荐系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,信息爆炸已成为现代社会的一个显著特征。在餐饮领域,各类美食琳琅满目,消费者在选择餐点时往往面临“选择困难症”......
  • 基于python+flask框架的书籍再用系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化时代,尽管电子书籍的兴起极大地丰富了人们的阅读方式,但实体书籍仍以其独特的触感、收藏价值及深度阅读体验,在广大读者中占据着不可......
  • 【useTranslation】兼容数组解构和对象解构的三种实现方式
    useTranslation使用:数组解构:const[t,i18n]=useTranslation();对象解构:const{t,i18n}=useTranslation();useTranslation兼容数组解构和对象解构的三种实现方式:1.返回带属性的数组在这种实现方式中,返回一个数组,并为该数组添加对象属性。这样可以同时使用数组......
  • js对象转数组对象
    1.创建一个baseFun.jsexportfunctionobjectFun(obj){constresult=[]//处理所有可能的JSON字符串字段,递归处理所有嵌套JSON字符串functionprocessJsonFields(obj){for(constkeyinobj){if(obj.hasOwnProperty(key)){......
  • python装饰器模式实现切面功能
    引言在软件开发中,我们经常会遇到一些横切关注点(cross-cuttingconcerns),如日志记录、事务管理、安全性检查等,这些关注点通常会跨越多个模块。传统的编程方式会导致代码的重复和分散,难以维护。面向切面编程(AOP)是一种编程范式,它通过提供一种新的方式来模块化横切关注点,从而提高代码......
  • Python 之PyMysql
    Python之PyMysql目录Python之PyMysqlPymysql教程使用教程Pymysql教程介绍:PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库安装pipinstallPyMySQL使用教程#!/usr/bin/envpython#-*-coding:utf-8-*-##@Author:Alex##_____......
  • 基于Python的资产管理系统的设计与实现-附源码201117
    摘 要现代企业管理越来越强调利用有形资产来提供优质服务的能力,即通过资产管理来确保有形资产物尽其用、安全运行,在希望的时间和地点提供需要的设备,同时尽可能地降低运行和维护成本。资产管理系统为企业提供全面、迅速的资产信息,方便管理者了解和操作企业内部的资产管理。......
  • array数组对象以及常用方法
    数组(Array)是一种数据结构,用于存储具有相同类型的数据元素的有序集合。1.定义数组//通过字面量方式定义数组:let 数组名=[值,值,值];letnumbers=[1,2,3,4,5];//通过构造函数定义数组:let数组名=newArray(值,值,值);(newArray()是固定写法)letfr......
  • C语言程序设计——数组(二)
    一、字符数组1.1字符数组的定义定义方法与数组(一)介绍的类似。用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。1.2字符数组的初始化对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。注:①如果在定义字符数组时不进行初始化,则数组中各......