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; } }
点赞 评论

相关推荐

牛客网
牛客企业服务