leetcode 54. 螺旋矩阵 python

2023-11-05

题目描述:

 

题解:

1.逆时针的遍历顺序为:右 下 左 上,定义一个directions的list,分别对应这四个方向。如果当前方向的下一个位置到达matrix边界或者已经被访问过,则变换为下一个方向。

2.定义一个和输入matrix大小相同的flag数组,初始化为全0,记录[i,j]位置是否被访问过,dir_idx表示当前沿着directions数组中的第几个方向进行遍历,result记录结果。

3.posx posy分别表示当前位置的坐标,初始化为0,dir_idx也初始化为0,将当前[posx,posy]对应的matrix值加入result中,flag对应位置标记为1,如果沿着当前direction[dir_idx]的下一个位置不合法或者对应flag为1,则使用下一个direction,得到一个新坐标,直到flag中所有位置被标记为1.

class Solution:
    def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
        directions = [[0,1],[1,0],[0,-1],[-1,0]]
        result = []
        posx = 0
        posy = 0
        rows = len(matrix)
        cols = len(matrix[0])
        flag = [[0 for i in range(cols)]for j in range(rows)]
        dir_idx = 0
        flagsum = 0
        while flagsum<rows*cols:
            result.append(matrix[posx][posy])
            flag[posx][posy] = 1
            flagsum+=1
            if posx+directions[dir_idx][0]==rows or posy+directions[dir_idx][1]==cols or flag[posx+directions[dir_idx][0]][posy+directions[dir_idx][1]]==1:
                dir_idx = (dir_idx+1)%4
            posx = posx+directions[dir_idx][0]
            posy = posy+directions[dir_idx][1]
        return result

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode 54. 螺旋矩阵 python 的相关文章

  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • JavaScript 相当于 Python 的参数化 string.format() 函数

    这是 Python 示例 gt gt gt Coordinates latitude longitude format latitude 37 24N longitude 115 81W Coordinates 37 24N 115 81W
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

    课程设计说明 GUI 使用的是Python自带的 tkinter 模块 无需配置 Python自带的模块直接导包使用即可 包含了增删改查 保存文件 满足 90 大学生期末课程设计需求 运行时在main py文件右键运行即可 完整文件关注私聊
  • 进程间通信--管道通信

    进程间通信 在两个进程之间 每个进程各自有不同的用户地址空间 任何一个进程的全局变量在另一个进程中都看不到 比如 在父进程中的全局变量 如果在子进程中去改变这个全局变量 则子进程中被改变的这个值不会去影响父进程 因为子进程中的所有数据都是通
  • Visual Studio 2022 常用快捷键,记录一下别忘记~

    Visual Studio 2022 常用快捷键 记录一下别忘记 Ctrl E C 注释代码 Ctrl E U 取消注释代码 Ctrl E D 格式化全部代码 Ctrl Shift A 新建类 Ctrl R G 删除无效Using Ctrl
  • RestTemplate的详解

    引言 在SpringCloud微服务中 通过引入 ribbon实现了服务消费者的客户端负载均衡功能 在这个过程中使用了一个非常有用的对象 RestTemplate 该对象会使用 Ribbon 的自动化配置 同时通过配置 LoadBalanc
  • MATLAB 程序设计

    文章目录 前言 一 M文件操作介绍 M文件的创建与打开 1 建立新的M文件 2 打开已有的 文件 3 脚本文件的运行 二 输入输出语句 1 输入函数 input 2 输出函数 display和disp 3 格式化输出函数 fprintf 4
  • 把单元格一分为二_excel如何把一个单元格分成两个 excel单元格拆分为二行

    excel如何把一个单元格分成两个 excel单元格拆分为二行 excel助手 今天为大家分享一篇干货知识 如何设置excel单元格拆分为二行 今天的分享角度是从工作中常用的角度谈的 正如标题提到的 excel如何把一个单元格分成两个 ex
  • 线性代数笔记 2 - 矩阵的初等变换

    矩阵的初等变换 初等行变换 对换两行 对换i j 两行 记作 r i r j
  • abp web.mvc项目中的菜单加载机制

    abp中的菜单加载机制 在abp中菜单的定义与我们传统写的框架不一样 它是在编写代码的时候配置 而我们一般写的通用权限管理系统中 是后期在后台界面中添加的 这一点有很大不同 abp关于菜单的定义及管理挺复杂的 与菜单相关的结构类 接口及扩展
  • ArcGIS Server Linux 10.7压缩包

    ArcGIS Server Linux 10 7压缩包 链接 https pan baidu com s 1GYjElpbXZN0938 vWyWSOA 提取码 nkbp
  • 分享一个去水印接口,完全免费,早点下手啊

    上传到任意空间或者服务器 访问即可用 目前支持很多平台 抖音 快手 皮皮虾 西瓜 红书 微视 最右 哔哩哔哩 皮皮搞笑等常见平台 而且还是免费的 该接口测试 完全免费 如果那天收费了 大家可以直接放弃使用
  • linux下如何清理缓存

    手头的路由本身内存就比较少 上面又跑了一个nginx php的环境 简直慢的爆炸 check的时候发现内存经常被占了很多 linux的虚拟内存机制 很多时候回导致内存得不到及时释放 有时候内存很少了 kill了很多进程 但是内存还是没有释放
  • React_井字棋

    该项目是跟着react官网写的 由于是初学 就只用来记录自己的代码 如果和我一样是初学react建议看官网 react import React from react import ReactDOM from react dom clien
  • C++的范围for语句详解 附易错实例

    博客内容 C 读取一行内个数不定的整数的方式 作 者 陈大大陈 个人简介 一个正在努力学技术的准前端 专注基础和实战分享 欢迎私信 欢迎大家 这里是CSDN 我总结知识和写笔记的地方 喜欢的话请三连 有问题请私信 范围for语句是C 引入的
  • 深度学习做分类时出现list index out of range解决办法之一

    error list index out of range 索引出了问题 首先检查一下自己的数组索引是不是真的有问题 如果没问题就是自己读入的文件里包含不能识别的字符 比如空格 参考 https blog csdn net weixin 3
  • Ubuntu 12.04 下安装ncurses-devel

    解决Ubuntu 12 04 使用 make menuconfig 配置Linux 内核时 出现缺少 ncurses devel 库支持 Unable to find the ncurses libraries or the require
  • Instrusive 【HDU - 5040】【2014 北京 BFS】

    题目链接 一道有着很多需要细节的地方需要注意的题 挺不错的 这题的数据也是给的很好 然后讲一下题意吧 题意 有一个N N的网格 有起点M和终点T 我们从起点需要走到终点 每一步需要花费的时间是单位一 但是呢 我们不能被摄影机拍摄到 摄影机是
  • halcon21.11安装教程详解

    文章目录 1 软件下载 2 安装过程 halcon21 11安装教程详解 1 软件下载 a 官网 https www mvtec com cn b 百度网盘下载 链接 https pan baidu com s 1 Bdz1l54PQWxb
  • Pycharm-Python 下载安装第三方库

    Pycharm Python 下载安装第三方库 一 安装第三方库 00 新建项目 02 两种安装方式 通过代码提示安装 pip install 安装 二 小结 最近我使用 pip install 安装第三方库时出现了一些问题 不知道为什么
  • nvidia自动更新带来的问题

    实验室的ubuntu 14 04 lts server 上的gpu突然不能用了 使用 nvidia smi 查看gpu信息时显示 Failed to initialize NVML GPU access blocked by the ope
  • leetcode 54. 螺旋矩阵 python

    题目描述 题解 1 逆时针的遍历顺序为 右 下 左 上 定义一个directions的list 分别对应这四个方向 如果当前方向的下一个位置到达matrix边界或者已经被访问过 则变换为下一个方向 2 定义一个和输入matrix大小相同的f