2023-04-16:给定一个长度为N的数组,值一定在0~N-1范围,且每个值不重复
比如,arr = [4, 2, 0, 3, 1]
0 1 2 3 4
把0想象成洞...,任何非0数字都可以来到这个洞里,然后在原本的位置留下洞
比如4这个数字,来到0所代表的洞里,那么数组变成 :
arr = [0, 2, 4, 3, 1]
也就是原来的洞被4填满,4走后留下了洞
任何数字只能搬家到洞里...,并且走后留下洞
通过搬家的方式,想变成有序的,有序有两种形式
比如arr = [4, 2, 0, 3, 1],变成
[0, 1, 2, 3, 4]或者[1, 2, 3, 4, 0]都叫有序。...数字只能搬家到洞里,并且走后留下洞,因此在交换过程中需要记录其中一个数字所在的位置作为洞的位置。...# golang代码如下:
package main
import "fmt"
func sortArray(nums []int) int {
// 长度n
// ans1 : 0 1 2