題干
給定一個非負整數陣列 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] 也會被接受,
提示:
2 <= A.length <= 20000
A.length % 2 == 0
0 <= A[i] <= 1000
想法
其實我沒get到題上要求的【排序】是怎么排序了
不過看示例,要求i為偶數A[i]就為偶數即可
(注意不是第奇數個為奇數嗷
那就遍歷一遍,雙指標指答案的坐標,遍歷到的數放到該放的位置即可
Java代碼
class Solution {
public int[] sortArrayByParityII(int[] A) {
int len=A.length;
if(len==0){
return null;
}
int []ans=new int[len];
int i=0, j=1;
for (int a:A
) {
//奇數
if ((a&1)==1){
ans[j]=a;
j+=2;
}
else {
ans[i]=a;
i+=2;
}
}
return ans;
}
}
我的leetcode代碼都已經上傳到我的githttps://github.com/ragezor/leetcode
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/216168.html
標籤:其他
下一篇:CSP-游戲Python實作
