Giả sử ta có một mảng num và một giá trị val, ta phải xóa tất cả các thể hiện của giá trị đó tại chỗ (in-place) và tìm độ dài mới.
Ví dụ, nếu đầu vào là [0,1,5,5,3,0,4,5] 5, thì đầu ra sẽ là 5.
Để giải quyết, ta thực hiện các bước sau:
- count := 0
- Với mỗi chỉ số i của nums
- Nếu nums[i] không bằng val, thì:
- nums[count] := nums[i]
- count := count + 1
- Nếu nums[i] không bằng val, thì:
- Trả về count
Ví dụ
Hãy xem triển khai sau để hiểu rõ hơn:
class Solution: def removeElement(self, nums, val): count = 0 for i in range(len(nums)): if nums[i] != val: nums[count] = nums[i] count += 1 return count ob = Solution() print(ob.removeElement([0,1,5,5,3,0,4,5], 5))
Đầu vào
[0,1,5,5,3,0,4,5], 5
Đầu ra
5