मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें लंबाई 3 के सन्निहित अंकगणितीय अनुक्रमों की संख्या ज्ञात करनी है। जैसा कि हम जानते हैं कि एक अंकगणितीय अनुक्रम संख्याओं की एक सूची है जहां एक संख्या और अगली संख्या के बीच का अंतर समान होता है।
इसलिए, यदि इनपुट अंकों की तरह है =[6, 8, 10, 12, 13, 14], तो आउटपुट 4 होगा, क्योंकि हमारे पास अंकगणितीय क्रम हैं जैसे:[6, 8, 10] [8, 10, 12] [6, 8, 10, 12] [12, 13, 14]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
गिनती :=0, उत्तर :=0
-
मेरे लिए 2 से लेकर अंकों के आकार तक, करें
-
यदि अंक [i] - अंक [i - 1] अंकों के समान है [i - 1] - अंक [i - 2], तो
-
गिनती :=गिनती + 1
-
-
अन्यथा,
-
उत्तर:=उत्तर + भागफल (गिनती * (गिनती + 1)) / 2
-
गिनती :=0
-
-
-
अगर गिनती शून्य नहीं है, तो
-
उत्तर:=उत्तर + भागफल (गिनती *(गिनती + 1)) / 2
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, nums): count = 0 ans = 0 for i in range(2, len(nums)): if nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]: count += 1 else: ans += (count * (count + 1)) // 2 count = 0 if count: ans += (count * (count + 1)) // 2 return ans ob = Solution() nums = [6, 8, 10, 12, 13, 14] print(ob.solve(nums))
इनपुट
[6, 8, 10, 12, 13, 14]
आउटपुट
4