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

पायथन में सबसे लंबे समय तक बढ़ने वाला क्रम

मान लीजिए कि हमारे पास पूर्णांकों की एक क्रमबद्ध सूची नहीं है। हमें सबसे लंबे समय तक बढ़ते क्रम को खोजना होगा। तो अगर इनपुट [10,9,2,5,3,7,101,18] है, तो आउटपुट 4 होगा, क्योंकि बढ़ते क्रम [2,3,7,101]

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

  • ट्रेल :=लंबाई 0 से लेकर अंकों की लंबाई -1 तक की एक सरणी, और इसे 0 से भरें
  • आकार :=0
  • अंकों में x के लिए
    • i :=0, j :=size
    • जबकि मैं j नहीं हूं
      • मध्य :=i + (j - i) / 2
      • यदि पगडंडियाँ[मध्य]
    • ट्रेल्स[i] :=x
    • आकार :=अधिकतम i + 1 और आकार
  • वापसी का आकार

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

उदाहरण

class Solution(object):
   def lengthOfLIS(self, nums):
      tails =[0 for i in range(len(nums))]
      size = 0
      for x in nums:
         i=0
         j=size
         while i!=j:
            mid = i + (j-i)//2
            if tails[mid]< x:
               i= mid+1
            else:
               j = mid
               tails[i] = x
               size = max(i+1,size)
               #print(tails)
      return size
ob1 = Solution()
print(ob1.lengthOfLIS([10,9,2,5,3,7,101,18]))

इनपुट

[10,9,2,5,3,7,101,18]

आउटपुट

4

  1. पायथन में एक मैट्रिक्स में सबसे लंबा बढ़ता हुआ पथ

    मान लीजिए हमारे पास एक मैट्रिक्स है; हमें सबसे लंबे बढ़ते हुए पथ की लंबाई ज्ञात करनी है। प्रत्येक कोशिका से, हम या तो चार दिशाओं में जा सकते हैं - बाएँ, दाएँ, ऊपर या नीचे। हम तिरछे नहीं जा सकते या सीमा से बाहर नहीं जा सकते। तो, अगर इनपुट पसंद है 9 9 4 6 6 8 2 1 1 तो आउटपुट 4 होगा क्योंकि सबसे

  1. पायथन में शब्दकोश में सबसे लंबा शब्द

    मान लीजिए कि हमारे पास एक अंग्रेजी शब्दकोश का प्रतिनिधित्व करने वाले शब्दों की एक सूची है, हमें दी गई शब्द सूची में सबसे लंबा शब्द ढूंढना है जिसे शब्दों में दूसरे शब्दों द्वारा एक समय में एक वर्ण बनाया जा सकता है। यदि एक से अधिक संभावित उत्तर हैं, तो सबसे छोटे शब्द को सबसे छोटे शब्दकोषीय क्रम के साथ

  1. पायथन में ट्रिपलेट बाद में वृद्धि

    मान लीजिए कि एक अवर्गीकृत सरणी है। हमें यह जांचना होगा कि लंबाई 3 का बढ़ता क्रम उस सरणी में मौजूद है या नहीं। औपचारिक रूप से समारोह चाहिए - यदि i, j, k मौजूद है तो सही लौटें ऐसे कि arr[i]