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

    技术2026-04-12  6

    看完题的思路:

    定义变量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按位与为什么?

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

                      &要多加个括号。

    正确代码:

    Processed: 0.012, SQL: 10