如何提升wordpress网站速度,在线效果图设计,公司建了网站怎么做分录,公众号转wordpress思路#xff1a; 递归做法#xff0c;一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位#xff0c;再考虑第1位#xff0c;再考虑第2位...dfs函数中还是老套路#xff0c;先判定特殊条件#xff0c;再从当下的角度#xff08;决定第 j 位是哪个元素#x…
思路 递归做法一般会有visit数组来判断第 i 位是否被考虑了。我们先考虑第0位再考虑第1位再考虑第2位...dfs函数中还是老套路先判定特殊条件再从当下的角度决定第 j 位是哪个元素依次遍历visit数组依次将visit值为0的元素赋给第 j 位并继续递归记住要恢复现场。 代码
C
class Solution {
public:void dfs(vectorint visit,vectorvectorint res,vectorint nums,vectorint path,int i,int len){if(ilen){res.push_back(path);return;}//考虑第i位for(int j0;jlen;j){if(visit[j]0){visit[j]1;path.push_back(nums[j]);dfs(visit,res,nums,path,i1,len);visit[j]0;path.pop_back();}}}vectorvectorint permute(vectorint nums) {vectorvectorint res;int lennums.size();vectorint visit(len,0);vectorint path;dfs(visit,res,nums,path,0,len);return res;}
};
Python
class Solution:def permute(self, nums: List[int]) - List[List[int]]:def dfs(visit:List[int],res:List[List[int]],num:List[int],path:List[int],i:int,len_:int):if ilen_:res.append(path.copy())return for j in range(len_):if visit[j]0:visit[j]1path.append(nums[j])dfs(visit,res,nums,path,i1,len_)visit[j]0path.pop()res[]len_len(nums)visit[0]*len_path[]dfs(visit,res,nums,path,0,len_)return res
注意这句话 res.append(path.copy())将 pathList[int] 加入到 resList[List[int]] 类型中时记得先将path copy一下再进行append操作