首页 > 其他分享 >数组章节的进阶54. 螺旋矩阵

数组章节的进阶54. 螺旋矩阵

时间:2023-08-27 21:37:24浏览次数:49  
标签:章节 startx starty res matrix 54 range offset 进阶

54. 螺旋矩阵

 1 class Solution:
 2     def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
 3         m, n = len(matrix), len(matrix[0])
 4         res = [] #存放遍历后的结果
 5         startx = starty = 0
 6 
 7         for offset in range(min(m, n)//2): #offset初始值为0 左闭右开 range(1,1):不循环了
 8 
 9             for j in range(starty, n-offset-1): #从左到右
10                 res.append(matrix[startx][j])
11 
12             for i in range(startx, m-offset-1):#从上到下
13                 res.append(matrix[i][n-offset-1])
14 
15             for j in range(n-offset-1, starty,-1):#从右到左
16                 res.append(matrix[m-offset-1][j])
17 
18             for i in range(m-offset-1,startx, -1): #从下到上
19                 res.append(matrix[i][starty])
20             
21             startx += 1
22             starty += 1
23         
24         if min(m, n) % 2 == 1:
25             offset = min(m, n) // 2
26             if m <= n:
27                 for j in range(offset, n-offset):
28                     res.append(matrix[offset][j])
29             else:
30                 for i in range(offset, m-offset):
31                     res.append(matrix[i][n-offset-1])
32         
33         return res

 

 

标签:章节,startx,starty,res,matrix,54,range,offset,进阶
From: https://www.cnblogs.com/wuyijia/p/17660883.html

相关文章

  • 摄像机进阶技巧
    不同镜头拍摄的方法不一样135mm以上的就是长焦镜头15mm是广角光圈越大会有模糊......
  • go 进阶训练营 微服务可用性(下)笔记
    降级:减少工作量,丢弃不重要的请求。确定具体采用哪个指标作为流量评估和优雅降级的决定性指标:如CPU、延迟、队列长度、线程数量、错误等当服务进入降级时,需要执行什么动作?流量抛弃或者优雅降级应该在服务的哪一层实现?是否需要在整个服务的每一层都实现,还是可以选择某个高层面......
  • Android平台RTMP|RTSP直播播放器功能进阶探讨
    我们需要怎样的直播播放器?很多开发者在跟我聊天的时候,经常问我,为什么一个RTMP或RTSP播放器,你们需要设计那么多的接口,真的有必要吗?带着这样的疑惑,我们今天聊聊Android平台RTMP、RTSP播放器常规功能,如软硬解码设置、实时音量调节、实时快照、实时录像、视频view翻转和旋转、画面填充......
  • AppSpider Pro 7.4.054 for Windows - Web 应用程序安全测试
    AppSpiderPro7.4.054forWindows-Web应用程序安全测试Rapid7DynamicApplicationSecurityTesting(DAST)请访问原文链接:https://sysin.org/blog/appspider/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgappspider没有任何应用程序未经测试,没有未知风险......
  • Leetcode 454. 四数相加 II(4sum ii)
    题目链接给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4=[0,2]输出:2......
  • 树状数组进阶
    出去集训讲了一些有关树状数组的NB东西,然后模拟赛考了一个二维树状数组的板子,自己差点没推出来柿子,所以简单写写。参考博客:《树状数组进阶》-Alex_wei树状数组二分树状数组二分,本质上其实应该是树状数组倍增,它是基于倍增的思想实现的。算法流程树状数组二分解决的问题是......
  • 1154 Vertex Coloring
    题目A propervertexcoloring isalabelingofthegraph'sverticeswithcolorssuchthatnotwoverticessharingthesameedgehavethesamecolor.Acoloringusingatmost k colorsiscalleda(proper) k-coloring.Nowyouaresupposedtotellifagi......
  • QOJ # 6354. 4
    题面传送门我是傻逼。首先你看这东西长得一脸四元环计数那类东西,于是先给边定向,这样子的话就形成了一张图,每个点只有\(O(\sqrtm)\)条出边。现在我们枚举一个三元环,要计算三个点都指向的点的个数。直接做有\(O(m\sqrtm)\)个三元环,每个三元环需要\(O(\frac{m}{\omega})\)......
  • P5490 【模板】扫描线
    \(P5490\)【模板】扫描线一、题目描述求\(n\)个四边平行于坐标轴的矩形的面积并。输入格式第一行一个正整数\(n\)。接下来\(n\)行每行四个非负整数\(x_1,y_1,x_2,y_2\),表示一个矩形的四个端点坐标为\((x_1,y_1),(x_1,y_2),(x_2,y_2),(x_2,y_1)\)。输出格式......
  • CF54C First Digit Law 题解
    题目传送门\(Solution\):一个比较简单的数位dp处理技巧加上一个暴力的dp。设\(p_i\)为区间\([l_i,r_i]\)中出现\(1\)开头的数的概率。考虑\(solve(x)\)函数为求出\([1,x]\)中开头为\(1\)的个数。显然低于\(x\)的位数的数是全部能取到的,这时候开头为\(1\)......