劍指 Offer 21. 調整陣列順序使奇數位於偶數前面
題目
輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有奇數位於陣列的前半部分,所有偶數位於陣列的後半部分。
示例
輸入:nums = [1,2,3,4]
輸出:[1,3,2,4]
注:[3,1,2,4] 也是正確的答案之一
提示
1 <= nums.length <= 50000
1 <= nums[i] <= 10000
程式碼
可以使用雙指標方法,前後給定義一個變數,前面的變數直到偶數停下來,後面的變數直到奇數停下來,交換,迴圈直到左邊變數大於右邊變數。
class Solution {
public int[] exchange(int[] nums) {
int left=0;
int right=nums.length-1;
while(left<right){
if(nums[left]%2!=0){
left++;continue;
}
if(nums[right]%2==0){
right--;continue;
}
if(nums[left]%2==0&&nums[right]%2!=0){
int a=nums[left];
nums[left]=nums[right];
nums[right]=a;
}
}
return nums;
}
}
相關文章
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- JZ-013-調整陣列順序使奇數位於偶數前面陣列
- LeetCode題解(Offer21):調整陣列順序使奇數位於偶數前面(Python)LeetCode陣列Python
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- [每日一題] 第十一題:調整陣列順序使奇數位於偶數前面每日一題陣列
- 【C語言】調整陣列使奇數全部都位於偶數前面。C語言陣列
- 使奇數位於偶數前面
- 第三章:查詢與排序(下)------------- 3.8題解_調整陣列順序-奇數在左偶數在右排序陣列
- 面試演算法題(4)--將一個整數陣列中的所有奇數放到偶數前面面試演算法陣列
- 劍指offer之順序列印陣列陣列
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- 劍指Offer--陣列中重複的數字陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 劍指Offer-34-把陣列排成最小的數陣列
- 調整陣列元素順序演算法陣列演算法
- 【劍指 Offer】11. 旋轉陣列的最小數字陣列
- 劍指 Offer 11. 旋轉陣列的最小數字陣列
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 劍指 offer(1) -- 陣列篇陣列
- 【leetcode】劍指 Offer 16. 數值的整數次方LeetCode
- 劍指 Offer 56 - I. 陣列中數字出現的次數陣列
- 劍指OFFER-數字在升序陣列中出現的次數(Java)陣列Java
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 劍指Offer-39-數字在排序陣列中出現的次數排序陣列
- 劍指offer——斐波那契數列
- 力扣 - 劍指 Offer 45. 把陣列排成最小的數力扣陣列
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 劍指offer之列印超過陣列一半的數字陣列
- 1. 二位陣列中的查詢(劍指offer)陣列
- 劍指offer——把字串轉換成整數C++字串C++
- 劍指offer(Java版)--將字串轉換為整數Java字串
- 劍指offer刷題之路--1.陣列中重複的數字陣列
- (python版)《劍指Offer》JZ06:旋轉陣列的最小數字Python陣列
- 劍指offer-19:順時針列印矩陣矩陣
- [劍指offer題解][Java]陣列中出現次數超過一半的數字Java陣列
- Leetcode 劍指 Offer 39. 陣列中出現次數超過一半的數字LeetCode陣列