全排列字典序

Posted by BY on March 28, 2022

前言

好久没更新,水一题

正文

问题来源

本问题来自leetcode上的类似题。

问题描述

全排列字典序。

分析:

func reverse(arr []int, i, j int) {
    for i < j  {
        arr[i], arr[j] = arr[j], arr[i]
        i = i+1
        j = j-1
    }
}

func fullArray(arr []int) {
    for true {
        fmt.Println(arr)
        i := len(arr) - 2
        for ; i >= 0; i-- {
            if arr[i] < arr[i+1] {
                break
            }
        }
        if i < 0 {
            return
        }
        j := len(arr) - 1
        for ; j > i; j-- {
            if arr[j] > arr[i] {
                break
            }
        }
        arr[i], arr[j] = arr[j], arr[i]
        reverse(arr, i+1, len(arr)-1)
    }
}

总结:

勤思考。

结语

不管怎么样好好加油。