劍指21
1.暴力法
單獨創(chuàng)建兩個列表纹份,一個奇數列表,一個偶數列表廷痘。遍歷整個數組蔓涧,奇數偶數分開存放,最后再合并成一個列表笋额。
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
a = [] # 奇數
b = [] # 偶數
for i in range(len(nums)):
if nums[i]%2 == 0:
b.append(nums[i])
else:
a.append(nums[i])
a.extend(b)
return a
2.兩個指針
探路指針 fast元暴,交換指針 slow。
fast 如果指向偶數兄猩,不做反應茉盏,繼續(xù)向前;fast 指向奇數時枢冤,交換兩個指針的值鸠姨。
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
# 兩個指針
slow = fast = 0
while fast < len(nums):
if nums[fast]&1: # 判定奇數的一種方式 和1相與為1
nums[fast],nums[slow] = nums[slow],nums[fast]
slow += 1
fast += 1
else:
fast += 1
return nums