https://leetcode.com/problems/sort-array-by-parity-ii/
你會得到一組全是數字的陣列nums
,其中一半是奇數,另外一半是偶數
請把陣列重新排列使nums
的奇數項是奇數,偶數項是偶數,回傳任一個符合條件的就可以
用兩個變數odd, even
分別記錄奇數和偶數的起始位置,再建立一個大小剛好的陣列ans
接著用迴圈讀取陣列的每個數字,如果數字是奇數,就把奇數放到ans[odd]
,並且把odd
加二,代表下個放奇數的位置;偶數是一樣的判斷
class Solution:
def sortArrayByParityII(self, nums: List[int]) -> List[int]:
even = 0
odd = 1
ans = [0] * len(nums)
for num in nums:
if num % 2 == 0:
ans[even] = num
even += 2
else:
ans[odd] = num
odd += 2
return ans