Leetcode 283 Move Zeroes
Given an integer array nums, move all 0’s to the end of it while maintaining the relative order of the non-zero elements.
Note that you must do this in-place without making a copy of the array.
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]
Input: nums = [0]
Output: [0]
- Soruda bize içinde sıfırlar olan bir liste veriliyor ve bu sıfırları listenin sonuna taşımamız isteniyor.
- Bu soruyu iki işaretçi kullanarak çözebiliriz.
- İki işaretçideki sayıları karşılaştırarak ilerleriz ve 0 ile sayının yerini değiştiririz.
- Sıfır ile yer değiştirdiğimizde 0 da olan indeksi 1 arttırırız.
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
slow = 0
for fast in range(len(nums)):
if nums[fast] != 0 and nums[slow] == 0:
nums[slow], nums[fast] = nums[fast], nums[slow]
# wait while we find a non-zero element to
# swap with you
if nums[slow] != 0:
slow += 1