Cho danh sách nums mà mỗi giá trị xuất hiện đúng 3 lần trừ một giá trị xuất hiện 1 lần. Tìm giá trị duy nhất đó với không gian O(1).
Ví dụ: nums = [3, 3, 3, 8, 4, 4, 4] → kết quả 8.
Giải thuật (Counter - không phải O(1) không gian)
Lưu ý: Giải pháp dùng Counter tốn O(n) không gian. Để O(1) không gian, dùng thao tác bitwise.
- Dùng
Counter(nums)đếm tần suất. - Trả về khóa có tần suất nhỏ nhất (
min(nums, key=nums.get)).
Ví dụ minh họa
from collections import Counter
class Solution:
def solve(self, nums):
nums = Counter(nums)
return min(nums, key=nums.get)
ob = Solution()
nums = [3, 3, 3, 8, 4, 4, 4]
print(ob.solve(nums)) # Output: 8
Đầu vào
[3, 3, 3, 8, 4, 4, 4]
Đầu ra
8