劍指Offer 21 調整陣列順序使奇數在偶數前

2021-10-09 16:38:07 字數 685 閱讀 1597

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分

示例:輸入:nums = [1,2,3,4]

輸出:[1,3,2,4]

注:[3,1,2,4] 也是正確的答案

在陣列左右定義兩個索引, 左邊找出偶數, 右邊找出奇數, 找到後交換並讓左索引右移, 右索引左移, 重複直到兩個索引相遇

class

solution

int len = nums.length;

// 定義兩個索引, 左索引找出偶數, 右索引找出奇數

int i =0;

int j = len -1;

// 兩個索引相遇時說明左邊全是奇數, 右邊全是偶數

while

(i < j)

// 如果右索引的數是偶數if(

(nums[j]

&0x1)==

0)// **走到這裡時, i索引肯定是偶數, j索引肯定是奇數, 所以交換

swap

(nums, i, j);}

return nums;

}public

void

swap

(int

nums,

int i,

int j)

}

劍指offer21 調整陣列順序使奇數字於偶數前面

調整陣列順序使奇數字於偶數前面 指定兩個指標pbegin和pend,在pbegin pend時 也就滿足了整個陣列都是奇在偶數前。public class solution21 while pbegin pend funcpend array pend if pbegin 2.1 暴力解 從頭開始遍...

劍指offer 調整陣列順序

時間限制 1秒 空間限制 32768k 本題知識點 陣列 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。首先想到的是利用兩個輔助陣列,乙個儲存奇數,乙個儲存偶數,這樣的...

劍指offer(調整陣列順序)

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。1 暴力解法 從前到位掃瞄陣列,如果出現前面是偶數後面是奇數的情況,則交換。其中使用氣泡排序的思想。從後面朝前比較,使用外迴圈控制趟...