DFS
leetcode 46 全排列
原题链接:
https://leetcode.cn/problems/permutations/description/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   | class Solution {     List<List<Integer>> ans = new ArrayList<>();     int [] q;     int n;      public List<List<Integer>> permute(int[] nums) {         q = nums;         n = q.length;         dfs(0,new ArrayList<>());         return ans;     }
      private void dfs(int u,List<Integer> list){         if(n == list.size()){             ans.add(new ArrayList<Integer>(list));         }
          for(int i = 0 ; i < n ; i++){                          if(list.contains(q[i])){                 continue;             }             list.add(q[i]);             dfs(i + 1,list);             list.remove(list.size() - 1);         }     } }
  | 
 
排序
leetcode 283 移动零点
原题链接:
https://leetcode.cn/problems/move-zeroes/description/
最优解是快排思想 当然两次遍历交换也可以做
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
   | class Solution {     public void moveZeroes(int[] nums) {         int n = nums.length;         int j = 0;                  for(int i = 0 ; i < nums.length ; i++){             if(nums[i] != 0){                 int tmp = nums[i];                 nums[i] = nums[j];                 nums[j++] = tmp;             }         }     } }
 
  |