class Solution(object):
def sortedSquares(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
j=len(nums)-1
i=0
list=[]
while i<=j:
if nums[i]**2>=nums[j]**2:
list.append(nums[i]**2)
i+=1
else:
list.append(nums[j]**2)
j-=1
return list[::-1]
这题较简单,有点像合并链表的感觉
class Solution(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
min=999999
j=0
l=0
sum=0
for i in range(len(nums)):
sum+=nums[i]
l+=1
while sum>=target:
if l<min:
min=l
sum-=nums[j]
j+=1
l-=1
if min==999999:
return 0
return min
这题暴力AC不了,滑动窗口的思想得记一记,注意赋值min时要确保sum是大于target的
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
matrix = [[0 for _ in range(n)] for _ in range(n)]
l=n
k=1
x=0
y=n-1
while n>=2:
for i in range(x,y):
matrix[x][i]=k
k+=1
for i in range(x,y):
matrix[i][y]=k
k+=1
for i in range(y,x,-1):
matrix[l-x-1][i]=k
k+=1
for i in range(y,x,-1):
matrix[i][l-y-1]=k
k+=1
n-=2
x+=1
y-=1
if n==1:
matrix[l/2][l/2]=l**2
return matrix
这题挺难的,一开始很难找到正确的思路,不过看视频提示后,写起来很舒服。