力扣:调整数组顺序使奇数位于偶数前面
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
#方法一:双指针法
left,right=0,len(nums)-1 #left在最前,right在最后
while left<=right:
#left指针遇见奇数继续下一个,遇见偶数停
while (left<=right) and nums[left] %2==1: #nums[left] &1==1
left+=1 #指针下一位
while (left<=right) and nums[right] %2==0: #nums[right] &1==0
right-=1
if left>right:
break
#两个指针 left指在偶数,right指在奇数,则值互换
nums[left],nums[right]=nums[right],nums[left]
return nums
#方法二:辅助数组法
#遍历数组
l1=[]
l2=[]
for num in nums:
if num%2==1:
l1.append(num) #遇见奇数就追加到l1
else:
l2.append(num) #偶数就追加到l2
return l1+l2 #合并l1,l2