射洪哪里可以做网站,网站开发专业职业规划,石家庄公司网站建设,wordpress 写插件吗1.题目解析 2.讲解算法原理 1.首先画出决策树#xff0c;越详细越好
2.设计代码
全局变量 ListListInteger retListInteger pathboolean[] check dfs函数 仅关心某一节点在干什么 细节问题回溯 干掉path最后一个元素修改check权限 剪枝 check中为…1.题目解析 2.讲解算法原理 1.首先画出决策树越详细越好
2.设计代码
全局变量 ListListInteger retListInteger pathboolean[] check dfs函数 仅关心某一节点在干什么 细节问题回溯 干掉path最后一个元素修改check权限 剪枝 check中为true的不能使用要剪掉 递归出口 遇到叶子结点的时候直接添加结果
3.编写代码
class Solution {ListListInteger ret;ListInteger path;boolean[] check;public ListListInteger permute(int[] nums) {retnew ArrayList();pathnew ArrayList();checknew boolean[nums.length];dfs(nums);return ret;}public void dfs(int[] nums){if(nums.lengthpath.size()){ret.add (new ArrayList(path));return;}for(int i0;inums.length;i){if(check[i]false){path.add(nums[i]);check[i]true;dfs(nums);//回溯恢复现场check[i]false;path.remove(path.size()-1);}}}
}