ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের দৈর্ঘ্য ≥ 3 এর পাটিগণিতিক অনুক্রমের সংখ্যা খুঁজে বের করতে হবে। যেমন আমরা জানি একটি গাণিতিক ক্রম হল সংখ্যার একটি তালিকা যেখানে একটি সংখ্যা এবং পরবর্তী সংখ্যার মধ্যে পার্থক্য একই।পি>
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[6, 12, 13, 8, 10, 14], তাহলে আউটপুট হবে 3, যেমন আমাদের পরবর্তি আছে যেমন:[6, 8, 10], [6, 10, 14] ], [12, 13, 14]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
-
dp :=একটি নতুন মানচিত্র
-
n :=সংখ্যার আকার
-
res :=0
-
0 থেকে n রেঞ্জের জন্য, করুন
-
0 থেকে i রেঞ্জে j এর জন্য, করুন
-
পার্থক্য :=সংখ্যা[i] - সংখ্যা[j]
-
পূর্ববর্তী :=dp[(i, diff)] যদি এটি উপস্থিত না থাকে, তাহলে 0
-
prevprev :=dp[(j, diff)] যদি এটি উপস্থিত না থাকে, তাহলে 0
-
dp[i, diff] :=prev + prevprev + 1
-
res :=res + prevprev
-
-
-
রিটার্ন রিটার্ন
উদাহরণ
class Solution:
def solve(self, nums):
dp = {}
n = len(nums)
res = 0
for i in range(n):
for j in range(i):
diff = nums[i] - nums[j]
prev = dp.get((i, diff), 0)
prevprev = dp.get((j, diff), 0)
dp[(i, diff)] = prev + prevprev + 1
res += prevprev
return res
ob = Solution()
nums = [6, 12, 13, 8, 10, 14]
print(ob.solve(nums)) ইনপুট
[6, 12, 13, 8, 10, 14]
আউটপুট
3