劍指 offer21
劍指 Offer 21. 調整陣列順序使奇數位於偶數前面
-
雙指標
設定雙指標,left 指向 陣列的開始,right 指向陣列末尾位置。
- 對於 left,從前往後找,找到第一個偶數的位置;
- 對於 right,從後往前找,找到第一個奇數的位置;
當 left<right時,交換這兩個位置的元素,再繼續進行。
vector<int> exchange(vector<int>& nums) { int left=0,right=nums.size()-1; while(left<right) { while((nums[left]&1)!=0&&left<right){ left++; } while((nums[right]&1)!=1&&left<right) { right--; } if(left<right) swap(nums[left++],nums[right--]); } return nums; }
-
快慢指標
設定快指標 fast,慢指標low。fast 記錄的是奇數出現的位置,low 記錄的是奇數應該放置的位置。low 和 fast 都從陣列的開始位置向後移動。直到 fast 指標到達陣列末尾。
vector<int> exchange(vector<int>& nums) { int low=0,fast=0; while(fast<nums.size()) { if(nums[fast]&1){ swap(nums[low],nums[fast]); low++; } fast++; } return nums; }
相關文章
- 刷劍指
- 劍指OFFER
- 劍指1
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指offer16
- 劍指 offer20
- 劍指Offer題解合集
- 【劍指Offer】矩形覆蓋
- 劍指offer——跳臺階
- 六、劍指 Offer(25~29)
- 劍指Spring原始碼(二)Spring原始碼
- 劍指Spring原始碼(一)Spring原始碼
- 劍指offer-JavaScript版JavaScript
- 劍指offer刷題記錄
- 劍指offer-第2章
- 劍指offer第41~50題
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指offer】【2】字串的空格字串
- 劍指immer,更快更強的limu
- 劍指 Offer 38. 字串的排列字串
- 《劍指 Offer》棧實現佇列佇列
- 劍指offer刷題day02
- LeetCode|劍指 Offer 49.醜數LeetCode
- 劍指offer第49題 醜數
- 劍指offer——重建二叉樹二叉樹
- 劍指Offer 表示數值的字串字串
- 劍指Offer 撲克牌順子
- 【劍指offer】2.替換空格
- 劍指offer-替換空格02
- 劍指offer解析-上(Java實現)Java
- 劍指offer解析-下(Java實現)Java
- 劍指offer 變態跳臺階
- mysql 索引十連問| 劍指 offer - mysqlMySql索引
- 秒殺劍指offer系列(41-50)
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 劍指offer之順序列印陣列陣列
- 劍指offer(四)重建二叉樹二叉樹