ধরুন আমাদের কাছে A, B, C, এবং D সংখ্যার চারটি তালিকা আছে এবং একটি লক্ষ্য মানও আছে, আমাদেরকে স্বতন্ত্র চতুর্গুণের সংখ্যা (i, j, k, l) খুঁজে বের করতে হবে যেমন A[i] + B[ j] + C[k] + D[l] টার্গেটের সমান।
সুতরাং, যদি ইনপুট হয় A =[5, 4, 3] B =[8, 4] C =[6, 2] D =[4, 10] লক্ষ্য =23, তাহলে আউটপুট হবে 3, চারগুণ হল [5, 8, 6, 4] [3, 4, 6, 10] [3, 8, 2, 10]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
- গণনা :=0
- m :=একটি খালি মানচিত্র
- A এর প্রতিটি i এর জন্য করুন
- B এর প্রতিটি j-এর জন্য, করুন
- m[i + j] :=m[i + j] + 1
- C-তে প্রতিটি k-এর জন্য, করুন
- D-এ প্রতিটি z-এর জন্য, করুন
- যদি (লক্ষ্য - (k + z)) m হয়, তাহলে
- গণনা :=গণনা + m[লক্ষ্য - (k + z)]
- যদি (লক্ষ্য - (k + z)) m হয়, তাহলে
- D-এ প্রতিটি z-এর জন্য, করুন
- B এর প্রতিটি j-এর জন্য, করুন
- রিটার্ন গণনা
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
class Solution: def solve(self, A, B, C, D, target): count = 0 from collections import defaultdict from collections import Counter m = defaultdict(int) for i in A: for j in B: m[i + j] += 1 for k in C: for z in D: if target - (k + z) in m: count += m[target - (k + z)] return count ob = Solution() A = [5, 4, 3] B = [8, 4] C = [6, 2] D = [4, 10] target = 23 print(ob.solve(A, B, C, D, target))
ইনপুট
[5, 4, 3], [8, 4], [6, 2], [4, 10], 23
আউটপুট
3