【剑指21】调整数组顺序使奇数位于偶数前面
思路:双指针
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
left,right = 0,len(nums)-1
while left<right:
while left<right and nums[left]%2==1:
left+=1
while left<right and nums[right]%2==0:
right-=1
if left<right:
nums[left], nums[right] = nums[right], nums[left]
return nums
引申:如果不能改变奇数偶数之间的相互顺序
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
i =0
while i < len(nums):
if nums[i]%2==1:
j = i
while j-1>=0 and nums[j-1]%2==0:
nums[j],nums[j-1] = nums[j-1], nums[j]
j-=1
i+=
return nums

浙公网安备 33010602011771号