剑指81题解 | #调整数组顺序使奇数位于偶数前面(二)#
调整数组顺序使奇数位于偶数前面(二)
https://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8
#include <fstream> class Solution { public: vector<int> reOrderArrayTwo(vector<int>& array) { // write code here // 左右指针 int l = 0, r = array.size() - 1; while (l < r) { // 左奇右奇,左动右静 if(array[l]%2 && array[r]%2){ l++; // std::cout << " 左奇右奇 " << std::endl; } // 左奇右偶,两动 else if(array[l]%2 && !array[r]%2) { l++; r--; // std::cout << " 左奇右偶 " << std::endl; } // 左偶右奇,交换数值 else if(!(array[l]%2) && array[r]%2){ swap(array[l], array[r]); // std::cout << " 左偶右奇 " << std::endl; } // 左偶右偶,左静右动 // else if(!(array[l]%2) && !(array[r]%2)){ // 这写法会报错,陷入死循环,奇怪 else{ r--; // std::cout << " 左偶右偶 " << std::endl; } // for(auto j : array) std::cout << j << " "; // std::cout << std::endl; } return array; } };
挤挤刷刷! 文章被收录于专栏
记录coding过程