/*
奇数放在奇数下标上,偶数放在偶数下标上
奇数偶数个数一样
一个数组中,请你把奇数放在奇数的下标上,偶数
奇数过多 奇数尽量放在奇数下标上,不够就算了
偶数过多 偶数尽量放在偶数下标上,不够就算了
N - 1
[7 6 2 9 4 2 3 7 6 5 1 ]
0 1 2 3 4 5 6 7 8 9 10
a b 指向 奇偶下标 每次 + 2
看N - 1 位置的数,是奇数和b位置的数交换, b + 2
永远看 最后一个数,然后发货
a,b 有一个越界就停
*/
func JiOuIndex(arr []int) {
N := len(arr) - 1
for a, b := 0, 1; a <= N && b <= N; {
if arr[N] % 2 == 0 {
arr[b], arr[N] = arr[N], arr[b]
b += 2
}else {
arr[a], arr[N] = arr[N], arr[a]
a += 2
}
}
}
func TestJiOuIndex(t *testing.T) {
arr := []int{7, 6, 2, 9, 4, 2, 3, 7, 6, 5, 1}
JiOuIndex(arr)
t.Log(arr)
}
调整数组元素位置,奇偶位置
最新推荐文章于 2023-04-13 16:52:09 发布