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;         }     }