19-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
admin
2024-05-02 12:23:12
0

题目

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。

示例:

输入:nums = [1,2,3,4]
输出:[1,3,2,4] 
注:[3,1,2,4] 也是正确的答案之一。

提示:

0 <= nums.length <= 50000
0 <= nums[i] <= 10000


思路:双指针前后遍历(类似于快速排序的思想)

定义两个指针分别为left和right,left从数组第一个元素开始向后遍历,right从数组最后一个元素开始向前遍历。

当left遇到奇数(不管right是奇数还是偶数),继续先后走;当right遇到偶数(不管left是偶数还是奇数),继续向后走。

当left遇到偶数且right遇到奇数时,交换left和right所指向的元素值。

继续上述步骤,直到left >= right。结束遍历,返回原数组即为所求。


代码

class Solution {public int[] exchange(int[] nums) {if(nums == null || nums.length == 0) {return nums;}int left = 0, right = nums.length - 1;while(left < right) {while(left < right && nums[left] % 2 != 0) {left++;}while(left < right && nums[right] % 2 != 1) {right--;}int temp = nums[left];nums[left] = nums[right];nums[right] = temp;}return nums;}
}

相关内容

热门资讯

吹风机养生:真能顶得上老中医吗... 近年来,社交平台上流行起了“吹风机养生”的说法,许多博主宣称用吹风机对着特定的穴位吹热风,可以温阳驱...
深夜王炸,GPT-5.5发布 财联社 美东时间周四,OpenAI公布了其最新的人工智能模型——GPT-5.5。该公司表示,该模型在...
台湾同胞参加海军成立77周年纪... 4月23日,台湾同胞登上海军舰艇参观并与海军军官合影留念。新华社记者 李杰 摄 新华社青岛4月23日...
特朗普:这世界疯了 美国司法部当地时间4月23日证实,参与强行控制并转移委内瑞拉总统马杜罗的美国陆军特种部队军士长甘农·...
从冲击千亿市值到被申请破产重整... 图/ic 八年亏损超84亿元!“中国影视第一股”华谊兄弟被申请重整。 4月23日晚,华谊兄弟传媒股份...
“保安与停车女子和好接吻”,A... 撰稿/苏士仪(媒体人) 编辑/王言虎 校对/王心 ▲女司机与保安发生肢体冲突一事,持续引发关注。图...
美伊冲突前景不明 国际油价再度... 当地时间4月24日,由于美国与伊朗冲突前景仍不明朗,市场避险情绪升温,国际油价再度上涨。布伦特原油上...
美国发生群体性枪击事件,8名1... 新华社消息,美国路易斯安那州什里夫波特市19日发生一起群体性枪击事件,造成8名儿童死亡,枪手被警方击...
274亿美金砸向核武器,威慑还... 文︱陆弃 能源部长克里斯·赖特在2026年4月16号的一场公开场合称,美国正在推进的核武器现代化计划...