Hai bạn Amal và Bimal chơi game với danh sách đã sắp xếp nums. Mỗi lượt Amal chọn 3 số, Bimal xóa 1, Amal xóa 1. Danh sách ban đầu có số lượng phần tử lẻ. Amal muốn tối thiểu hóa số lượt, Bimal muốn tối đa hóa. Tìm số lượt cần thiết khi cả hai chơi tối ưu.
Ví dụ
Đầu vào: nums = [1,1,2,3,3,3,4].
Đầu ra: 2.
Thuật toán
- Đếm số cặp phần tử trùng lặp liên tiếp (
repeats). - Kết quả =
(repeats + 1) // 2.
Mã nguồn Python
class Solution:
def solve(self, nums):
repeats = 0
for i in range(1, len(nums)):
if nums[i] == nums[i-1]:
repeats += 1
return (repeats + 1) // 2
ob = Solution()
nums = [1, 1, 2, 3, 3, 3, 4]
print(ob.solve(nums))
Đầu vào / Đầu ra
Input: [1, 1, 2, 3, 3, 3, 4]
Output: 2