1. 程式人生 > >LeetCode-922. 按奇偶排序數組 II

LeetCode-922. 按奇偶排序數組 II

解法 接受 break 對數 != pub 滿足 leet tmp

給定一個非負整數數組 A, A 中一半整數是奇數,一半整數是偶數。

對數組進行排序,以便當 A[i] 為奇數時,i 也是奇數;當 A[i] 為偶數時, i 也是偶數。

你可以返回任何滿足上述條件的數組作為答案。

示例:

輸入:[4,2,5,7]
輸出:[4,5,2,7]
解釋:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也會被接受。

提示:

  1. 2 <= A.length <= 20000
  2. A.length % 2 == 0
  3. 0 <= A[i] <= 1000

沒什麽好的思路,代碼效率不高,新題也不知道大家還有沒有什麽好的解法。

代碼:

 1 class Solution {
2 public: 3 vector<int> sortArrayByParityII(vector<int>& A) { 4 int tmp = 0; 5 int flag = 0; 6 for (int i = 0; i < A.size(); i ++) { 7 if (A[i] % 2 != 0&&i % 2 == 0) { 8 tmp = A[i]; 9 for (int j = i + 1
; j < A.size(); j ++) { 10 if (A[j] % 2 == 0&&j % 2 != 0) { 11 A[i] = A[j]; 12 A[j] = tmp; 13 tmp = 0; 14 flag = 1; 15 } 16 if (flag) { 17
flag = 0; 18 break; 19 } 20 } 21 } 22 else if (A[i] % 2 == 0 && i % 2 != 0) { 23 tmp = A[i]; 24 for (int j = i + 1; j < A.size(); j = j + 2) { 25 if (A[j] % 2 != 0) { 26 A[i] = A[j]; 27 A[j] = tmp; 28 tmp = 0; 29 flag = 1; 30 } 31 if (flag) { 32 flag = 0; 33 break; 34 } 35 } 36 } 37 } 38 return A; 39 } 40 };

LeetCode-922. 按奇偶排序數組 II