溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

LeetCode如何調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面

發(fā)布時間:2021-12-15 13:44:05 來源:億速云 閱讀:128 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹了LeetCode如何調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

題目

輸入一個整數(shù)數(shù)組,實現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有奇數(shù)位于數(shù)組的前半部分,所有偶數(shù)位于數(shù)組的后半部分。

示例:
輸入:nums = [1,2,3,4]
輸出:[1,3,2,4] 
注:[3,1,2,4] 也是正確的答案之一。
提示:
1 <= nums.length <= 50000
1 <= nums[i] <= 10000
思路
  • 初始化: i , j 雙指針,分別指向數(shù)組 nums 左右兩端;

  • 循環(huán)交換: 當(dāng)i=j 時跳出;

    • 指針 i遇到奇數(shù)則執(zhí)行 i = i + 1跳過,直到找到偶數(shù);

    • 指針 j 遇到偶數(shù)則執(zhí)行 j = j - 1 跳過,直到找到奇數(shù);

    • 交換 nums[i] 和 nums[j] 值;

  • 返回值: 返回已修改的 nums 數(shù)組。

代碼
class Solution {
    public int[] exchange(int[] nums) {
        int i = 0, j = nums.length - 1,temp;
        while(i < j){
            while(i < j && (nums[i] & 1) == 1){
                i++;
            }
            while(i < j && (nums[j] & 1) == 0){
                j--;
            }
            temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
        return nums; 
    }
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“LeetCode如何調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI