0
今天我试着去做我的第一步。 我试图写一个函数,它创建给定列表的所有排列。 首先,我彻底失败了,所以我试图写的Python功能和翻译它一步一步走:转语言创建排列
蟒蛇:
def get_permutations(elements):
permutations = []
if len(elements) == 1:
return [elements]
for i in range(len(elements)):
for perm in get_permutations(elements[0:i] + elements[i+1:]):
permutations.append([elements[i]] + perm)
return permutations
print(get_permutations([1,2,3]))
走:
func getPermutations(elements []int) [][]int {
permutations := [][]int{}
if len(elements) == 1 {
permutations = [][]int{elements}
return permutations
}
for i := range elements {
for _, perm := range getPermutations(append(elements[0:i], elements[i+1:]...)) {
permutations = append(permutations, append([]int{elements[i]}, perm...))
}
}
return permutations
}
func main() {
x := getPermutations([]int{1, 2, 3})
fmt.Print(x)
}
虽然Python版本创建此输出:
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2] ,[3, 2,1]]
在GO版本创建这一个:
[[3 3 3] [3 3 3] [3 3 3] [3 3 3] [3 3 3] [3 3 3]]
我真的有人可以帮助我。我真的很想知道,我在代码中做了什么错误
非常感谢我以为它会是这样的,但是我虽然数组的一个切片没有一个referenece到它的源 – Ced