mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 08:27:30 +08:00
规范格式
This commit is contained in:
29
leetcode/0046.Permutations/46. Permutations.go
Normal file
29
leetcode/0046.Permutations/46. Permutations.go
Normal file
@ -0,0 +1,29 @@
|
||||
package leetcode
|
||||
|
||||
func permute(nums []int) [][]int {
|
||||
if len(nums) == 0 {
|
||||
return [][]int{}
|
||||
}
|
||||
used, p, res := make([]bool, len(nums)), []int{}, [][]int{}
|
||||
generatePermutation(nums, 0, p, &res, &used)
|
||||
return res
|
||||
}
|
||||
|
||||
func generatePermutation(nums []int, index int, p []int, res *[][]int, used *[]bool) {
|
||||
if index == len(nums) {
|
||||
temp := make([]int, len(p))
|
||||
copy(temp, p)
|
||||
*res = append(*res, temp)
|
||||
return
|
||||
}
|
||||
for i := 0; i < len(nums); i++ {
|
||||
if !(*used)[i] {
|
||||
(*used)[i] = true
|
||||
p = append(p, nums[i])
|
||||
generatePermutation(nums, index+1, p, res, used)
|
||||
p = p[:len(p)-1]
|
||||
(*used)[i] = false
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
42
leetcode/0046.Permutations/46. Permutations_test.go
Normal file
42
leetcode/0046.Permutations/46. Permutations_test.go
Normal file
@ -0,0 +1,42 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question46 struct {
|
||||
para46
|
||||
ans46
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para46 struct {
|
||||
s []int
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans46 struct {
|
||||
one [][]int
|
||||
}
|
||||
|
||||
func Test_Problem46(t *testing.T) {
|
||||
|
||||
qs := []question46{
|
||||
|
||||
question46{
|
||||
para46{[]int{1, 2, 3}},
|
||||
ans46{[][]int{[]int{1, 2, 3}, []int{1, 3, 2}, []int{2, 1, 3}, []int{2, 3, 1}, []int{3, 1, 2}, []int{3, 2, 1}}},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 46------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans46, q.para46
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, permute(p.s))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
30
leetcode/0046.Permutations/README.md
Executable file
30
leetcode/0046.Permutations/README.md
Executable file
@ -0,0 +1,30 @@
|
||||
# [46. Permutations](https://leetcode.com/problems/permutations/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given a collection of **distinct** integers, return all possible permutations.
|
||||
|
||||
**Example:**
|
||||
|
||||
|
||||
Input: [1,2,3]
|
||||
Output:
|
||||
[
|
||||
[1,2,3],
|
||||
[1,3,2],
|
||||
[2,1,3],
|
||||
[2,3,1],
|
||||
[3,1,2],
|
||||
[3,2,1]
|
||||
]
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定一个没有重复数字的序列,返回其所有可能的全排列。
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 求出一个数组的排列组合中的所有排列,用 DFS 深搜即可。
|
Reference in New Issue
Block a user