See More

import java.util.ArrayList; import java.util.List; public class Algorithm { public static int maxSubArray(int[] nums) { int sum = Integer.MIN_VALUE; int n = nums.length; for(int l=1; l<=n; l++){ for(int i = 0; i> 1; // Status lSub = getInfo(a, l, m); // Status rSub = getInfo(a, m + 1, r); // return pushUp(lSub, rSub); // } // // public int MaxSubArray(int[] nums) { // return getInfo(nums, 0, nums.length - 1).mSum; // } // } /** * 全排列 */ // static class Solution { // private List> res = new ArrayList<>(); // private List tmp = new ArrayList<>(); // // public List> permute(int[] nums) { // backTracing(nums, 0, nums.length); // return res; // } // public void backTracing(int [] nums, int cur, int n){ // if(cur == n){ // tmp = new ArrayList<>(); // for (int num : nums) { // tmp.add(num); // } // res.add(tmp); // return; // } // // for(int i = cur; i < n ; i++){ // swap(nums, cur, i); // backTracing(nums, cur+1, n); // swap(nums, cur, i); // } // // } // public void swap(int [] nums, int i, int j){ // int tmp = nums[i]; // nums[i] = nums[j]; // nums[j] = tmp; // } // } // public static void main(String[] args) { // int []nums={1,2,3}; // Solution solution = new Solution(); // List> permute = solution.permute(nums); // System.out.println(permute.toString()); // // } /** * 组合 */ static class Solution { private List> res = new ArrayList<>(); private List tmp = new ArrayList<>(); public List> combine(int n, int k){ backTracing(n, 1, k); return res; } public void backTracing(int n, int cur, int k){ if(tmp.size() + (n-cur+1) < k){ return; } if(tmp.size() == k){ res.add(new ArrayList<>(tmp)); return; } tmp.add(cur); backTracing(n, cur+1, k); tmp.remove(tmp.size()-1); backTracing(n, cur+1, k); } } public static void main(String[] args) { Solution solution = new Solution(); List> permute = solution.combine(3,2); System.out.println(permute.toString()); while (true){ } } }