Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में दी गई सूची के सबसे लंबे अंकगणितीय अनुक्रम की लंबाई खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें सबसे लंबे अंकगणितीय अनुक्रम की लंबाई ज्ञात करनी होगी। जैसा कि हम जानते हैं कि एक अनुक्रम S[i] एक अंकगणितीय अनुक्रम है जब S[i+1] - S[i] का मान प्रत्येक i रेंज में समान होता है (0 i

इसलिए, यदि इनपुट अंकों की तरह है =[1, 4, 7, 10, 13, 20, 16], तो आउटपुट 6 होगा, इसके बाद [1, 4, 7, 10, 13, 16] एक अंकगणित है। क्योंकि प्रत्येक क्रमागत तत्व के बीच का अंतर 3 है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • n :=गिरफ्तारी का आकार
  • यदि n <=1, तो
    • वापसी n
  • res :=0
  • dp :=एक खाली नक्शा, कुंजी न मिलने पर डिफ़ॉल्ट रूप से यह 1 स्टोर करेगा
  • 1 से n-1 की श्रेणी में i के लिए
    • जे के लिए 0 से i-1 की श्रेणी में, करें
      • diff :=arr[i] - arr[j]
      • dp[i, diff] :=dp[j, diff] + 1
      • res :=अधिकतम res और dp[i, diff
  • रिटर्न रेस

उदाहरण (पायथन)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

from collections import defaultdict
class Solution:
   def solve(self, arr):
      n = len(arr)
      if n <= 1:
         return n
      res = 0
      dp = defaultdict(lambda: 1)
      for i in range(1, n):
         for j in range(i):
            diff = arr[i] - arr[j]
            dp[i, diff] = dp[j, diff] + 1
            res = max(res, dp[i, diff])
      return res
ob = Solution()
nums = [1, 4, 7, 10, 13, 20, 16]
print(ob.solve(nums))

इनपुट

[1, 4, 7, 10, 13, 20, 16]

आउटपुट

6

  1. पायथन में सबसे लंबे विपर्यय क्रम की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास दो लोअरकेस स्ट्रिंग्स S और T हैं, तो हमें सबसे लंबे एनाग्राम अनुक्रम की लंबाई ज्ञात करनी होगी। इसलिए, यदि इनपुट S =helloworld, T =hellolorld जैसा है, तो आउटपुट 8 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - सी:=एक नया नक्शा, डी:=एक नया नक्शा मैं के लिए 0 से

  1. पायथन में सबसे लंबे समय तक संतुलित बाद की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है जिसमें कोष्ठक कोष्ठक ( और ) है, हमें संतुलित कोष्ठकों के सबसे लंबे बाद के क्रम की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट s =())(()( जैसा है, तो आउटपुट 4 होगा, क्योंकि हम बाद में ()() ले सकते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - रेस :=0

  1. पायथन में दी गई सूची में k सबसे लंबे शब्द खोजें

    हमारे पास एक परिदृश्य है जहां हमें अलग-अलग लंबाई के कई शब्दों वाली सूची से शीर्ष n सबसे लंबा शब्द चुनना है। इस लेख में हम इसे प्राप्त करने के लिए विभिन्न दृष्टिकोण देखेंगे। गिनती के साथ() और क्रमबद्ध() हम पहले सूची के तत्वों को उल्टे क्रम में क्रमबद्ध करते हैं ताकि सूची की शुरुआत में सबसे लंबे शब्द