ধরুন আমাদের একটি অ্যারের সংখ্যা এবং তিনটি ভিন্ন পূর্ণসংখ্যা a, b এবং c আছে। আমাদের ভালো ট্রিপলেটের সংখ্যা বের করতে হবে। একটি ট্রিপলেট (nums[i], nums[j], nums[k]) একটি ভাল ট্রিপলেট বলা হয় যদি নিম্নলিখিত শর্তগুলি সত্য হয় -
-
0 <=i
-
|সংখ্যা[i] - সংখ্যা[j]| <=a
-
|সংখ্যা[জে] - সংখ্যা [কে]| <=b
-
|সংখ্যা[i] - সংখ্যা[কে]| <=c
আমাদের ভালো ট্রিপলেটের সংখ্যা গুনতে হবে।
সুতরাং, যদি ইনপুট হয় nums=[5,2,3,3,12,9], a =7, b =2, c =3, তাহলে আউটপুট হবে 4 কারণ ভাল ট্রিপলেটগুলি হল [(5, 2,3), (5,2,3), (5,3,3), (2,3,3)]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
res :=0
-
আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, করুন
-
j এর জন্য রেঞ্জ i+1 থেকে সংখ্যার আকার - 1, করুন
-
k এর জন্য j+1 থেকে সংখ্যার আকার - 1, করুন
-
যদি |সংখ্যা[i] - সংখ্যা[j]| <=a এবং |সংখ্যা[j] - সংখ্যা[k]| <=b এবং |সংখ্যা[i] - সংখ্যা[k]| <=c, তারপর
-
res :=res + 1
-
-
-
-
-
রিটার্ন রিটার্ন
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums, a, b, c): res = 0 for i in range(len(nums)): for j in range(i+1, len(nums)): for k in range(j+1, len(nums)): if abs(nums[i] - nums[j]) <= a and abs(nums[j] - nums[k]) <= b and abs(nums[i] - nums[k]) <= c: res += 1 return res nums= [5,2,3,3,12,9] a = 7 b = 2 c = 3 print(solve(nums, a, b, c))
ইনপুট
[5,2,3,3,12,9], 7, 2 3
আউটপুট
4