赞
踩
来源:力扣(LeetCode)
链接:
https://leetcode.cn/problems/minimum-size-subarray-sum/
- class Solution:
- def minSubArrayLen(self, target: int, nums: List[int]) -> int:
- n=len(nums)
- ans=n+1
- sum=0
- start,end=0,0
- while end<n:
- sum+=nums[end]
- while sum>=target:
- ans=min(ans,end-start+1)
- sum-=nums[start]
- start+=1
- end+=1
- return 0 if ans==n+1 else ans
链接:
https://leetcode.cn/problems/spiral-matrix-ii/
- class Solution:
- def generateMatrix(self, n: int) -> List[List[int]]:
- dirs=[(0,1),(1,0),(0,-1),(-1,0)]
- matrix=[[0]*n for _ in range(n)]
- dirIdx,row,col=0,0,0
- for i in range(n*n):
- matrix[row][col]=i+1
- dx,dy=dirs[dirIdx]
- r,c=row+dx,col+dy
- if r<0 or r==n or c==n or matrix[r][c]>0:
- dirIdx=(dirIdx+1)%4
- dx,dy=dirs[dirIdx]
- row,col=row+dx,col+dy
- return matrix
n x n
正方形矩阵,将元素按顺时针顺序螺旋排列。主要解决两个方面:1、怎么按照顺时针螺旋行走;2、怎么防止超越边界。解题:首先,我们需要构建一个n x n
元都为0的矩阵,向里面填元素。其次,我们填元素是一个一个填所以遍历次数是n x n
,定义初始点坐标“row,col=0,0”。我们一初始点向右为x轴正向,向下为y轴正向。定义一个列表存储四个行走方向按照→、↓、←、↑排列,定义“dirIdx=0”初始向右走。最后,我们在循环里将矩阵对应位置进行赋值,然后我们判断一下,当走到最后一行或列的时候我们要转弯,走到以前填过元素的地方要转弯。注意:“r<0”是因为第一列的行数为0,所以这边不能直接为“r=0”。本文为学习算法的小白发布,不喜勿喷
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。