[编程题] 奇数位上都是奇数或者偶数位上都是偶数
2017-08-13 16:02
253 查看
给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,3,4]调整为[2,1,4,3]即可。
class Solution { public: void oddInOddEvenInEven(vector<int>& vec, int len) { int first = 0; int last = vec.size() - 1; for (int first = 0; first < vec.size(); ++first) { if (first % 2 == 0 && vec[first] % 2 != 0) { int i = first + 1; for (; i < vec.size(); ++i) { if (vec[i] % 2 == 0) break; } if (i < vec.size()){ int tmp = vec[first]; vec[first] = vec[i]; vec[i] = tmp; } } else if (first % 2 != 0 && vec[first] == 0) { int i = first + 1; for (; i < vec.size(); ++i) { if (vec[i] % 2 != 0) break; } if (i < vec.size()){ int tmp = vec[first]; vec[first] = vec[i]; vec[i] = tmp; } } } }
相关文章推荐
- [编程题] 奇数位上都是奇数或者偶数位上都是偶数
- [编程题] 奇数位上都是奇数或者偶数位上都是偶数
- 奇数位上都是奇数或者偶数位上都是偶数---BAT实习内推笔试卷(第一场)
- BAT实习内推 奇数位上都是奇数或者偶数位上都是偶数
- 奇数位上都是奇数或者偶数位上都是偶数
- 奇数位上都是奇数偶数位上都是偶数
- 奇数下标都是奇数或者偶数下标都是偶数
- 奇数下标都是奇数或者偶数下标都是偶数
- 数组与矩阵---奇数下标都是奇数或者偶数下标都是偶数
- 偶数位上都是偶数,要么所有的奇数位上都是奇数
- 偶数位上都是偶数,要么所有的奇数位上都是奇数
- 奇数下标都是奇数或者偶数下标都是偶数
- sql 获取id是偶数或者是奇数的数据方法
- excel删除奇数行或者偶数行
- 把一个文件的偶数行,或者奇数行提取出来
- 趣题:选出最多的大小为奇数的子集,使得两两的交集大小都是偶数
- 用python脚本来计算100以内奇数或者偶数之和
- 输入一个数字n 如果n为偶数则除以2,若为奇数则加1或者减1,直到n为1,求最少次数 写出一个函数
- 重排数组元素,奇数放在奇数位,偶数放在偶数位
- 剑指offer编程题Java实现——面试题14调整数组顺序使奇数位于偶数之前