[剑指offer]21. 调整数组顺序使奇数位于偶数前面

[剑指offer]21. 调整数组顺序使奇数位于偶数前面

看完题的思路:

定义变量i,循环i<nums.size,然后就不会了。。。

看题解:

是定义双指针,这种考研的时候好像也用过这种思路。。

思路:(Krahets发布于leetcode)

考虑定义双指针 i, j 分列数组左右两端,循环执行:

指针 i从左向右寻找偶数;
指针 j 从右向左寻找奇数;
将 偶数 nums[i]nums[i] 和 奇数 nums[j]nums[j] 交换。
可始终保证: 指针 i左边都是奇数,指针 j 右边都是偶数 

初始化: i , j 双指针,分别指向数组 nums左右两端;
循环交换: 当 i = j时跳出;
指针 i 遇到奇数则执行 i = i + 1 跳过,直到找到偶数;
指针 j 遇到偶数则执行 j = j - 1跳过,直到找到奇数;
交换 nums[i] 和 nums[j] 值;
返回值: 返回已修改的 nums数组。

与1按位与为什么?

[剑指offer]21. 调整数组顺序使奇数位于偶数前面

[剑指offer]21. 调整数组顺序使奇数位于偶数前面

报错原因:数组好像没有size方法,又记串了55

                  &要多加个括号。

正确代码:

[剑指offer]21. 调整数组顺序使奇数位于偶数前面