Giả sử chúng ta có hai danh sách các số A và B, và một giá trị khác k, chúng ta phải tìm số phần tử trong A nhỏ hơn ít nhất k phần tử trong B.
Vì vậy, nếu đầu vào là A =[6, -2, 100, 11] B =[33, 6, 30, 8, 14] k =3, thì đầu ra sẽ là 3, là -2, 6, và 11 là đúng ít hơn 3 phần tử trong B.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu k giống 0, thì
- kích thước trả về của A
- sắp xếp B theo thứ tự ngược lại
- ct:=0
- đối với mỗi tôi trong A, thực hiện
- nếu tôi
- ct:=ct + 1
- nếu tôi
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Solution: def solve(self, A, B, k): if k == 0: return len(A) B.sort(reverse=True) ct = 0 for i in A: if i < B[k - 1]: ct += 1 return ct ob = Solution() A = [6, -2, 100, 11] B = [33, 6, 30, 8, 14] k = 3 print(ob.solve(A, B, k))
Đầu vào
[6, -2, 100, 11], [33, 6, 30, 8, 14], 3
Đầu ra
3