题解 | 数组的partition调整
数组的partition调整
https://www.nowcoder.com/practice/d311bcce968d4d849d998a799bf7492a
package main
import (
"fmt"
)
func main() {
num := 0
for {
n, _ := fmt.Scan(&num)
if n == 0 {
break
} else {
arr := make([]int, num)
for i:=0; i<len(arr); i++ {
fmt.Scan(&arr[i])
}
less := 0
i := 1
for i<num { // 这里假设less都边界为board=(num+1/2+1),
//应该可以提前终止判断的,好像不行没有想通 && less<board, 不过两者条件没有必然关系
if arr[i] != arr[less] {
less++
arr[i], arr[less] = arr[less], arr[i]
i++
} else {
i++
}
}
for i:=0; i<num; i++ {
if i==num-1 {
fmt.Println(arr[i])
} else {
fmt.Printf("%d ", arr[i])
}
}
}
}
}
京东公司氛围 301人发布