剑指Offer打卡day12——AcWing 32. 调整数组顺序使奇数位于偶数前面
发布日期:2021-05-08 21:31:09 浏览次数:21 分类:精选文章

本文共 594 字,大约阅读时间需要 1 分钟。

【题目描述】

在这里插入图片描述

【思路】

与快速排序分区中的双指针类似 ,i从前往后 遇到奇数则i++,j从后往前 遇到偶数则j–
然后交换array[i]和array[j],使得偶数在后、奇数在前。

class Solution {       public void reOrderArray(int [] array) {           //双指针交换        int n = array.length;        int i = 0, j = n - 1;        while(i < j){               //i从前往后 遇到奇数则i++            while( i < n && (array[i] & 1) == 1) i ++;            //j从后往前 遇到偶数则j--            while( j >= 0 && (array[j]& 1) == 0 )j --;            //交换i,j位置            if(i < j){                   int tmp = array[i];                array[i] = array[j];                array[j] =tmp;            }        }    }}
上一篇:专题(六)双指针、BFS与图论——AcWing 1113. 红与黑 AcWing 1096. 地牢大师
下一篇:专题(六)双指针、BFS与图论——AcWing 1240. 完全二叉树的权值

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月02日 18时22分08秒