按奇偶排序陣列

2021-10-02 10:20:59 字數 914 閱讀 2637

題目

給定乙個非負整數陣列 a,返回乙個陣列,在該陣列中, a 的所有偶數元素之後跟著所有奇數元素。

你可以返回滿足此條件的任何陣列作為答案。

示例

輸入:[3,

1,2,

4]輸出:[2,

4,3,

1]輸出 [4,

2,3,

1],[2,

4,1,

3] 和 [4,

2,1,

3] 也會被接受。

思路1

使用雙指標法,乙個指向首元素,乙個指向末尾元素,如果前指標的元素是奇數,則交換,並將後指標前移;否則前指標後移。

vector<

int>

sortarraybyparity

(vector<

int>

& a)

else i++;}

return a;

}

思路2

同樣是使用雙指標法,兩指標i,j同時從首元素出發,如果i指向的元素是偶數則兩元素交換,j後移,否則忽略。繼續移動i直至末尾。

vector<

int>

sortarraybyparity

(vector<

int>

& a)

i++;}

return a;

}

總結

兩種方法都能夠滿足要求,不同的是最終結果的相對順序不同,前者會導致奇偶元素的相對順序都會改變,後者可以保證偶數的相對順序不變。本題類似於」移動零「那一道題。思想是相同的。

按奇偶排序陣列

小周老師的思路是,以下標為0,1兩個位置出發,步長為2,遍歷列表,比如找到下標為奇值為偶時就讓另乙個位置出發找標偶值奇,再交換兩個下標的位置就大功告成啦!速度比我的方法要快一點 class solution def sortarraybyparityii self,a list int list i...

LeetCode 按奇偶排序陣列

給定乙個非負整數陣列a,返回乙個由a的所有偶數元素組成的陣列,後面跟a的所有奇數元素。你可以返回滿足此條件的任何陣列作為答案。示例 輸入 3,1,2,4 輸出 2,4,3,1 輸出 4,2,3,1 2,4,1,3 和 4,2,1,3 也會被接受。1 a.length 50000 a i 5000cl...

174 按奇偶排序陣列

題目描述 給定乙個非負整數陣列 a,返回乙個由 a 的所有偶數元素組成的陣列,後面跟 a 的所有奇數元素。你可以返回滿足此條件的任何陣列作為答案。示例 輸入 3,1,2,4 輸出 2,4,3,1 輸出 4,2,3,1 2,4,1,3 和 4,2,1,3 也會被接受。1 a.length 5000 0...