public static void dfs(List<List<Integer>> res, List<Integer> tmp, int[] nums, int sum, int x, int startIndex, boolean[] visited) { if (startIndex > nums.length) { return; } if (sum >= x) { res.add(new ArrayList<>(tmp)); } for (int i = startIndex; i < nums.length; i++) { if(visited[i]) { continue; } //如果存在不连续,则直接return if(i > 1 &;&; visited[i - 1] == false &;&; visited[i - 2]) { return; } visited[i] = true; sum += nums[i]; tmp.add(nums[i]); dfs(res, tmp, nums, sum, x, i + 1, visited); sum -= nums[i]; tmp.remove(tmp.size() - 1); visited[i] = false; } }
点赞 评论

相关推荐

10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
爱吃烤肠的牛油最喜欢...:50K是ssp了估计,ssp的人家多厉害都不用说,每年比例大概在百分之5左右
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务