Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm phần tử xuất hiện đúng một lần trong Python


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.

  1. Dùng Counter(nums) đếm tần suất.
  2. 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