奇数下标都是奇数 或 偶数下标都是偶数
【题目】给定一个长度不小于2的数组arr,实现一个函数调整arr,要么让所有的偶数下标都是偶数,要么让所有奇数的下标都是奇数
【解题思路】最后位置的数是偶数就与偶数下标位置进行交换,并更新;最后位置的数是奇数就与奇数下标位置进行交换,并更新。直到偶数下标或奇数下标无法再向右移动。
- 变量even:表示目前arr最左边的偶数下标,初始值even = 0;
- 变量odd:表示目前arr最左边的奇数下标,初始值odd = 1;
- 不断检查数组最后一个元素arr[len-1]
- 若是偶数,则与arr[even]进行交换,然后令even += 2;
- 若是奇数,则与arr[odd]进行交换,然后令odd += 2;
- 循环停止条件:even 或 odd 大于或等于len则停止
【C++代码】
void modify(int arr[],int len){
if(arr == NULL || len < 2){
return ;
}
int even = 0;