ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের দৈর্ঘ্য ≥ 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