LintCode 奇偶分割數組

題目

分割一個整數數組,使得奇數在前偶數在后。

樣例
給定[1, 2, 3, 4],返回[1, 3, 2, 4]。

分析

這道題其實很熟悉。將奇數排在前,偶數排在后

是不是和快速排序中的partiton算法很類似。其實是類似的。

設置兩個指針,一頭一尾,分別尋找偶數和奇數

代碼

public class Solution {
    /**
     * @param nums: an array of integers
     * @return: nothing
     */
    public void partitionArray(int[] nums) {
        // write your code here;
        int i=0;
        int j=nums.length - 1;
        while(i<j){
            while(nums[i]%2==1){
                i++;
            }
            while(nums[j]%2==0){
                j--;
            }
            if(i<j){
                nums[i]=nums[i]+nums[j];
                nums[j]=nums[i]-nums[j];
                nums[i]=nums[i]-nums[j];
            }

        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 分割一個整數數組,使得奇數在前偶數在后。您在真實的面試中是否遇到過這個題?Yes樣例給定 [1, 2, 3, 4]...
    DayDayUpppppp閱讀 388評論 0 0
  • 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 難度:容易 要求: 分割一個整數數組,使得奇數在前偶數在后。...
    柒黍閱讀 380評論 0 0
  • 3.10 69.給出一棵二叉樹,返回其節點值的層次遍歷(逐層從左往右訪問) 二叉樹的層次遍歷樣例給一棵二叉樹 {3...
    mytac閱讀 1,097評論 3 3
  • 數組索引 這樣聲明個數組,名為radius,含3個int型元素。我們可通過radius[0],radius[1],...
    夏威夷的芒果閱讀 924評論 1 0
  • 1、用C語言實現一個revert函數,它的功能是將輸入的字符串在原串上倒序后返回。 2、用C語言實現函數void ...
    希崽家的小哲閱讀 6,350評論 0 12