Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm số lượng số nguyên duy nhất ít nhất sau K lần xóa bằng Python

Giả sử chúng ta có một mảng gọi là nums nơi chỉ lưu trữ các số nguyên. Nếu chúng ta có một số k. Chúng ta phải tìm số phần tử duy nhất ít nhất sau khi loại bỏ chính xác k phần tử.

Vì vậy, nếu đầu vào giống như nums =[5,4,2,2,4,4,3], k =3, thì đầu ra sẽ là 2, bởi vì nếu chúng ta loại bỏ 5 và 3, và bất kỳ một trong 2s hoặc bất kỳ một trong 4s, sau đó chỉ còn lại 2 và 4.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • từ điển:=một bản đồ mới

  • đối với mỗi số trong số, thực hiện

    • nếu num không có trong từ điển, thì

      • từ điển [num]:=1

    • nếu không,

      • từ điển [num]:=từ điển [num] + 1

  • count:=kích thước của từ điển

  • đối với mỗi tần suất theo thứ tự đã sắp xếp của tất cả các giá trị của từ điển, thực hiện

    • k:=k - tần số

    • nếu k <0, thì

      • số lần trả lại

    • nếu không,

      • count:=count - 1

  • số lần trả lại

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

def solve(nums, k):
   dictionary={}
   for num in nums:
      if num not in dictionary:
         dictionary[num]=1
      else:
         dictionary[num]+=1
   count=len(dictionary)
   for frequency in sorted(dictionary.values()):
      k-=frequency
      if(k<0):
         return count
      else:
         count-=1
   return count
nums = [5,4,2,2,4,4,3]
k = 3
print(solve(nums, k))

Đầu vào

[5,4,2,2,4,4,3], 3

Đầu ra

2