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