Advertisement
K_S_

Untitled

Nov 25th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.97 KB | None | 0 0
  1. // Runtime: 1 ms, faster than 97.30% of Java online submissions for Permutations.
  2. // Memory Usage: 37.4 MB, less than 95.74% of Java online submissions for Permutations.
  3.  
  4. class Solution {
  5.     public List<List<Integer>> permute(int[] nums) {
  6.         ArrayList<List<Integer>> result = new ArrayList<>();
  7.         permute(nums, nums.length, new ArrayList<>(), result, new boolean[nums.length]);
  8.         return result;
  9.     }
  10.  
  11.     void permute(int[] nums, int n, List<Integer> current, List<List<Integer>> result, boolean[] chosen) {
  12.         if (current.size() == n) {
  13.             result.add(new ArrayList<>(current));
  14.             return;
  15.         }
  16.  
  17.         for (int i = 0; i < n; i++) {
  18.             if (chosen[i]) {
  19.                 continue;
  20.             }
  21.             chosen[i] = true;
  22.             current.add(nums[i]);
  23.             permute(nums, n, current, result, chosen);
  24.             current.remove(current.size() - 1);
  25.             chosen[i] = false;
  26.         }
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement