返回所有n位整数,每个整数里的值是单调递增的
问题:
给一个值 n , 返回所有 n 位整数,每个整数里的值是单调递增的。 比如,n = 3,那么长度为3的整数有 123, 124, 125, 134,。。。等。122, 222,这些是不符合条件的。
1 public class Solution { 2 3 public static void main(String[] args) { 4 System.out.println(IncreasingNNumbers(3)); 5 } 6 7 public static ArrayList<ArrayList<Integer>> IncreasingNNumbers(int n) { 8 ArrayList<ArrayList<Integer>> allList = new ArrayList<ArrayList<Integer>>(); 9 ArrayList<Integer> list = new ArrayList<Integer>(); 10 11 if (n <= 0) return allList; 12 helper(allList, list, n, 1); 13 return allList; 14 } 15 16 public static void helper(ArrayList<ArrayList<Integer>> allList, ArrayList<Integer> list, 17 int n, int current) { 18 if (current > 9 || list.size() >= n) return; 19 list.add(current); 20 if (list.size() == n) { 21 allList.add(new ArrayList<Integer>(list)); 22 } 23 helper(allList, list, n, current + 1); 24 list.remove(list.size() - 1); 25 helper(allList, list, n, current + 1); 26 } 27 }
转载请注明出处

浙公网安备 33010602011771号