给定一个长度为偶数的数组arr,假设长度为N*2,左部分:arr[L1……Ln],右部分:arr[R1……Rn],请把arr调整成arr[L1,R1,L2,R2,L3,R3,…,Ln,Rn]。...arr)
fmt.Println(arr)
}
// 数组的长度为len,调整前的位置是i,返回调整之后的位置
// 下标不从0开始,从1开始
func modifyIndex1(i int,...- 1
}
}
// 数组的长度为len,调整前的位置是i,返回调整之后的位置
// 下标不从0开始,从1开始
func modifyIndex2(i int, len2 int) int...base *= 3
k++
}
// 3^k -1
// 当前要解决长度为base-1的块,一半就是再除2
half...// 旋转完成后,从L开始算起,长度为base-1的部分进行下标连续推
cycles(arr, L, base-1, k)
// 解决了前base-1的部分,剩下的部分继续处理