Skip to content

Commit 5fdfcf0

Browse files
committed
46. Permutations
1 parent cb38cfe commit 5fdfcf0

File tree

5 files changed

+114
-1
lines changed

5 files changed

+114
-1
lines changed

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,18 @@
88
<artifactId>LeetCode-Java</artifactId>
99
<version>1.0-SNAPSHOT</version>
1010

11-
11+
<build>
12+
<plugins>
13+
<plugin>
14+
<groupId>org.apache.maven.plugins</groupId>
15+
<artifactId>maven-compiler-plugin</artifactId>
16+
<version>2.3.2</version>
17+
<configuration>
18+
<source>1.8</source>
19+
<target>1.8</target>
20+
<encoding>UTF-8</encoding>
21+
</configuration>
22+
</plugin>
23+
</plugins>
24+
</build>
1225
</project>

src/main/java/leetcode/_46_/Main.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package leetcode._46_;
2+
3+
import java.util.HashSet;
4+
import java.util.List;
5+
6+
/**
7+
* Created by zhangbo54 on 2019-03-04.
8+
*/
9+
public class Main {
10+
public static void main(String[] args) {
11+
Solution solution = new Solution();
12+
int[] nums = {1, 2, 3, 4};
13+
System.out.println(solution.permute(nums));
14+
System.out.println(solution.permute(nums).size());
15+
HashSet<List<Integer>> set = new HashSet<>(solution.permute(nums));
16+
System.out.println(set.size());
17+
}
18+
}
19+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package leetcode._46_;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
class Solution {
8+
public List<List<Integer>> permute(int[] nums) {
9+
List<List<Integer>> lists = new ArrayList<>();
10+
if (nums.length == 0) {
11+
return lists;
12+
}
13+
if (nums.length == 1) {
14+
List<Integer> item = new ArrayList<>();
15+
item.add(nums[0]);
16+
lists.add(item);
17+
return lists;
18+
}
19+
List<List<Integer>> permute = this.permute(Arrays.copyOfRange(nums, 1, nums.length));
20+
for (List<Integer> integers : permute) {
21+
for (int i = 0; i <= integers.size(); i++) {
22+
ArrayList<Integer> integers1 = new ArrayList<>(integers);
23+
integers1.add(i, nums[0]);
24+
lists.add(integers1);
25+
}
26+
}
27+
return lists;
28+
}
29+
}
Loading
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
### [46\. Permutations](https://leetcode.com/problems/permutations/)
2+
3+
Difficulty: **Medium**
4+
5+
6+
Given a collection of **distinct** integers, return all possible permutations.
7+
8+
**Example:**
9+
10+
```
11+
Input: [1,2,3]
12+
Output:
13+
[
14+
[1,2,3],
15+
[1,3,2],
16+
[2,1,3],
17+
[2,3,1],
18+
[3,1,2],
19+
[3,2,1]
20+
]
21+
```
22+
23+
24+
#### Solution
25+
26+
Language: **Java**
27+
28+
```java
29+
class Solution {
30+
   public List<List<Integer>> permute(int[] nums) {
31+
       List<List<Integer>> lists = new ArrayList<>();
32+
       if (nums.length == 0) {
33+
           return lists;
34+
      }
35+
       if (nums.length == 1) {
36+
           List<Integer> item = new ArrayList<>();
37+
           item.add(nums[0]);
38+
           lists.add(item);
39+
           return lists;
40+
      }
41+
       List<List<Integer>> permute = this.permute(Arrays.copyOfRange(nums, 1, nums.length));
42+
       for (List<Integer> integers : permute) {
43+
           for (int i = 0; i <= integers.size(); i++) {
44+
               ArrayList<Integer> integers1 = new ArrayList<>(integers);
45+
               integers1.add(i, nums[0]);
46+
               lists.add(integers1);
47+
          }
48+
      }
49+
       return lists;
50+
  }
51+
}
52+
```

0 commit comments

Comments
 (0)