7/100. Move Zeroes
阿新 • • 發佈:2018-11-09
class Solution: def moveZeroes(self, nums): """ :type nums: List[int] :rtype: void Do not return anything, modify nums in-place instead. """ zero = 0 #記錄第一個“0”的位置 for i in range(len(nums)): if nums[i] != 0: nums[i], nums[zero] = nums[zero],nums[i] zero += 1
更優解法:
class Solution: def moveZeroes(self, nums): """ :type nums: List[int] :rtype: void Do not return anything, modify nums in-place instead. """ last = None for i in range(len(nums)): if nums[i] == 0 and last is None: last = i if nums[i] != 0 and last is not None: nums[i], nums[last] = 0, nums[i] last += 1
解題心得:
- 若記錄“0”的最末位置,則還需記錄“0”的個數,不如直接記錄“0”的第一個位置。