Python3求解旋转矩阵问题

原题 https://leetcode-cn.com/problems/spiral-matrix/

给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。

示例 1:

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

示例 2:

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

解题:

class Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:m = len(matrix)if m == 0:return []n = len(matrix[0])if n == 0:return 0res  = []dir = 1 # 方向:1 右 2 下 3 左 4 上x = 0 # 起始列标y = 0 # 起始行标while True:if x == -1 or x == n or y == -1 or y == m or matrix[y][x] == None:breakres.append(matrix[y][x])matrix[y][x] = Noneif dir == 1 and ( x + 1 == n or matrix[y][x + 1] == None):dir = 2elif dir == 2 and (y + 1 == m or matrix[y + 1][x] == None):dir = 3elif dir == 3 and (x - 1 == -1 or matrix[y][x - 1] == None):dir = 4elif dir == 4 and (y - 1 == -1 or matrix[y - 1][x] == None):dir = 1if dir == 1:x += 1elif dir == 2:y += 1elif dir == 3:x -= 1elif dir == 4:y -= 1return res

Python3求解旋转矩阵问题相关推荐

  1. Python3求解找到小镇的法官问题

    Python3求解找到小镇的法官问题 原题 https://leetcode-cn.com/problems/find-the-town-judge/ 题目: 在一个小镇里,按从 1 到 N 标记了 ...

  2. SVD求解旋转矩阵(Least-Squares Fitting of Two 3-D Point Sets论文)

    引言 本文主要是针对<Least-Squares Fitting of Two 3-D Point Sets>论文SVD求解旋转矩阵中推导过程中使用到的一些线性代数相关的内容做一些说明,具 ...

  3. 模拟退火算法(SA)简单介绍,附用python3求解最大值案例

    简介 模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解.其思想借鉴于固体的退火原理,当固体的温度很高的时候,内能比较大,固体的内部粒子 ...

  4. LeetCode 热题 HOT 100 第四十九天 152. 乘积最大子数组 中等题 用python3求解

    题目地址 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积. 测试用例的答案是一个32-位整数. 子数组 是数组的连续子序 ...

  5. 旋转矩阵求解欧拉角Python实现

    旋转矩阵求解欧拉角Python实现 基本知识 绕静系与动系旋转 静系动系与左乘右乘 旋转矩阵连乘的两种理解 文件目录 实现方式 使用矩阵方程手动求解 SCIPY库求解 在线计算网站 总结 笔者在外实习 ...

  6. 旋转向量与旋转矩阵的相互转化

    公式 1. 旋转向量求解旋转矩阵 当刚体在三维空间中运动时,如果已知旋转向量,根据罗德里格斯公式是比较容易求得旋转矩阵的. 罗德里格斯公式如图所示 其中,I 是单位矩阵,n 是旋转向量的单位向量, t ...

  7. MATLAB【九】————ICP算法实现

    1.ICP推导与求解 https://zhuanlan.zhihu.com/p/35893884 2.算法实现: % 程序说明:输入data_source和data_target两个点云,找寻将dat ...

  8. ArUco估计位姿原理

    ArUco使用 PnP [OpenCV/aruco]校准相机(Camera Calibration) Demo -------------------------------------------- ...

  9. 由粗到精学习LVI-SAM基础:多传感器内外参标定原理

    作者丨Alvin一路向东@知乎 来源丨https://zhuanlan.zhihu.com/p/462759422 编辑丨3D视觉工坊 一.最小二乘法 1.1 线性最小二乘 遇到线性问题通常采用最小二 ...

最新文章

  1. Struts 2框架结构图
  2. Linux之最常用的20条命令
  3. 如何重命名磁盘盘符名?
  4. 大学计算机基础英语翻译,大学计算机基础 教学课件 978 7 302 21247 8 第7章 常用工具软件.pdf...
  5. 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试
  6. Office web app server2013详细的安装和部署
  7. 多股回测(backtrader+quantstats+akshare)
  8. 优考试在线考试系统计算机,使用优考试在线考试系统解决企业员工考核评比
  9. Transformers Assemble(PART II)
  10. php 微信pic_url,一段代码实现微信公众号开发校园图书馆
  11. [转载] 正则表达式“派别”简述
  12. matlb:图像的几何矩,中心矩,Hu不变矩(含代码)
  13. 安川控制器MP3300与C# 上位机通讯
  14. 奋斗5年,从月薪3500到700万(不止谈赚钱,故事也很感人)
  15. 微信小程序如何跳转视频号直播间
  16. 最好用的Mac任务规划软件【滴答清单】
  17. 【一点分享】Mysql高级特性:Event定时任务,用作定时调度ETL也很香。
  18. 新版阴阳师桌面版pc端固定窗口大小多开
  19. html雨滴状的图案代码,HTML_HTML5实现晶莹剔透的雨滴特效,复制代码代码如下: html - phpStudy...
  20. vs2013配置OpenGL+简单案例分析

热门文章

  1. 使用Spring Boot 2通过OAuth2和JWT进行集中授权
  2. spring jms 事务_Spring JMS:处理事务中的消息
  3. javafx 加载_JavaFX 2:如何加载图像
  4. 用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
  5. 传统的Web应用程序和RESTful API
  6. Enterprise Spring示例和集成测试
  7. 使用RxNetty访问Meetup的流API
  8. 使用Java 8防止日志过宽
  9. Hibernate应用程序级可重复读取
  10. 针对新手的Java EE7和Maven项目–第7部分