Skip to content

46_Permutations.go #3

@asu126

Description

@asu126
package main

import (
	"fmt"
)

var ret [][]int = make([][]int, 2)
var count = 0

func permute(nums []int) [][]int {
	dfs(nums, 0, len(nums))
	return ret
}

func swap(a int, b int) {
	tmp := a
	a = b
	b = tmp
}

func dfs(array []int, index int, length int) {
	// fmt.Println(index)
	if index == length-1 {
		// for i := 0; i < length; i++ {
		// 	// ret[count][i] = array[i]
		// }
		ret[count] = array
		fmt.Println(array)
		fmt.Println(count)
		count++
		return
	}

	for i := index; i < length; i++ {
		// cout<<"index1"<<index<<endl;
		// cout<<"i"<<i<<endl;
		// swap(array[i], array[index])
		tmp := array[i]
		array[i] = array[index]
		array[index] = tmp
		// if(array[i]!=array[index]);
		dfs(array, index+1, length)
		// swap(array[i], array[index])
		tmp1 := array[i]
		array[i] = array[index]
		array[index] = tmp1
	}
}

func main() {
	// m := make(map[string]int)
	// m["a"] = 1
	// fmt.Println(m["a"])
	// m["b"]++
	// fmt.Println(m["b"])
	// fmt.Println(len(m))

	// var arr []int = []int{-2, 1, -3, 4, -1, 2, 1, -5, 4}
	// var arr []int = []int{2, 2}
	var arr []int = []int{1, 2}
	fmt.Println(permute(arr))
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions