• 题目要求
  • image.png
  • 思路:声明一个遍历index,index = 0,用一个循环遍历数组,当遍历到不为零的元素时,把元素的值赋给nums[index],index加一,当循环结束时,把index之后的所以元素赋值为0。
  • 核心代码
#index为0,index指向当前未确定值的第一个元素,就是index前的所以元素都已经不为0。
index = 0
#循环遍历数组,如果遇到不为0的值,把这个值给index指向的位置
for i in range(len(nums)):
    if nums[i] != 0:
        nums[index] = nums[i]
        index += 1
#第一遍循环结束,index前的值都是有顺序且不为0的,index后的位置就是出现了多少0,把index后的值都赋为0
for j in range(index,len(nums)):
    nums[j] = 0

return nums
  • 完整代码:
class Solution(object):
    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: None Do not return anything, modify nums in-place instead.
        """
        index = 0
        for i in range(len(nums)):
            if nums[i] != 0:
                nums[index] = nums[i]
                index += 1
        
        for j in range(index,len(nums)):
            nums[j] = 0
        
        return nums

Adrianna
1 声望2 粉丝