DFS + 减枝

作者: 大旺旺的弟弟小旺旺 | 来源:发表于2021-12-29 08:19 被阅读0次
     public void dfs_cut(int[] arr,int target){
            List<Integer> list = new ArrayList<>();
            
        }
        
        public void dfs(int arr[],List<Integer> list,int pos,int target,int sum){
            if (sum > target)return;
            if (sum == target){
                //记录   目标出现,处理一下
            }
            for (int i = pos; i < arr.length; i++) {
                list.add(arr[i]);
    //            数字存在重复
    //            数字重复    存在重复运算  
                if (i>pos){
                    if (arr[i] > arr[i-1]) {
                        return;
                    }
                }
                dfs(arr,list,i+1,target,sum+arr[i]);
    //            数字不存在重复
    //            重复使用
    //            dfs(arr,list,i,target,sum + arr[i]);
    //            不重复 使用
                dfs(arr,list,i+1,target,sum + arr[i]);
                list.remove(arr[i]);
            }
        }
    

    相关文章

      网友评论

        本文标题:DFS + 减枝

        本文链接:https://www.haomeiwen.com/subject/xqqvqrtx.html