Cho mảng chứa số 0 và khác 0. Di chuyển tất cả số 0 sang phải, giữ thứ tự các số khác. Ví dụ: [0,1,5,0,3,8,0,0,9] → [1,5,3,8,9,0,0,0,0].
Giải pháp
Hai bước:
- insert_index = 0. Duyệt mảng: nếu nums[i] != 0 → nums[insert_index] = nums[i], insert_index++.
- Từ insert_index đến cuối: gán 0.
Ví dụ
Triển khai Python:
class Solution(object):
def moveZeroes(self, nums):
insert_index = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[insert_index]=nums[i]
insert_index+=1
for i in range(insert_index,len(nums)):
nums[i]=0
nums = [0,1,5,0,3,8,0,0,9]
ob1 = Solution()
ob1.moveZeroes(nums)
print(nums) Đầu vào
nums = [0,1,5,0,3,8,0,0,9]
Đầu ra
[1,5,3,8,9,0,0,0,0]