46.全排列
class Solution:def permute(self, nums: List[int]) -> List[List[int]]:def dfs(path,j):if(j==len(nums)):ans.append(path[:]) # 如果有pop语句的话,就必须加上[:],这是为什么呢returnfor i in range(len(nums)):if nums[i] not in path:path.append(nums[i])dfs(path,j+1)path.pop(-1)ans=[]dfs([],0)# print(ans)return ans
417.太平洋大西洋
class Solution:def pacificAtlantic(self, heights: List[List[int]]) -> List[List[int]]:def dfs(x,y,point):point.append((x,y))direction = [[-1,0],[1,0],[0,1],[0,-1]]for d in direction:nx=x+d[0]ny=y+d[1]if nx>=0 and ny>=0 and nx<len(heights) and ny<len(heights[0]) and heights[nx][ny]>=heights[x][y] and (nx,ny) not in point:dfs(nx,ny,point)point=[]for i in range (len(heights[0])):dfs(0,i,point)for i in range (len(heights)):dfs(i,0,point)print(point)point2=[]for i in range (len(heights[0])):dfs(len(heights)-1,i,point2)for i in range (len(heights)):dfs(i,len(heights[0])-1,point2)print(point2)print(set(point2) & set(point))return list(set(point2) & set(point))
为什么每次point都重新开始遍历
