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

पायथन में क्रमबद्ध सरणी बनाने के लिए हटाए जाने वाले सबसे छोटे उप-सरणी को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एआर नामक एक सरणी है, हमें एआर के एक सबरेरे को हटाना होगा जैसे कि एआर में शेष तत्व गैर-घटते क्रम में हैं। हमें निकालने के लिए सबसे छोटी उपसरणी की लंबाई ज्ञात करनी होगी।

इसलिए, यदि इनपुट arr =[10,20,30,100,40,20,30,50] की तरह है, तो आउटपुट 3 होगा क्योंकि हम [100, 40, 20] को हटा सकते हैं जो लंबाई 3 की सबसे छोटी उप-सरणी है, और इन सभी को हटाकर गैर-घटते क्रम में हैं [10,20,30,30,50]।

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

  • n :=गिरफ्तारी का आकार
  • arr :=arr के बाईं ओर 0 और arr के दाईं ओर अनंत डालें
  • A,B :=दो नई खाली सूचियां
  • p :=1, q:=arr -2 का आकार
  • एम:=0
  • जबकि p <=q, करें
    • अगर गिरफ्तारी [p-1] <=गिरफ्तारी [p], तो
      • A के अंत में arr[p] डालें
      • p :=p + 1
    • अन्यथा जब एआर [क्यू] <=एआर [क्यू + 1], फिर
      • B के अंत में arr[q] डालें
      • जबकि A खाली नहीं है और A का अंतिम तत्व> B का अंतिम तत्व है
        • A से अंतिम तत्व हटाएं
      • q :=q - 1
    • अन्यथा,
      • लूप से बाहर आएं
    • M :=अधिकतम M और A का आकार + B का आकार
  • वापसी एन - एम

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

उदाहरण

def solve(arr):
   n = len(arr)
   arr = [0] + arr + [float("inf")]
   A,B=[],[]
   p,q=1,len(arr)-2
   M = 0
   while p <= q:
      if arr[p-1] <= arr[p]:
         A.append(arr[p])
         p += 1
      elif arr[q] <= arr[q+1]:
         B.append(arr[q])
         while A and A[-1] > B[-1]:
            A.pop()
         q -= 1
      else:
         break
      M = max(M, len(A)+len(B))
   return n - M
arr = [10,20,30,100,40,20,30,50]
print(solve(arr))

इनपुट

[10,20,30,100,40,20,30,50]

आउटपुट

3

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन प्रोग्राम

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

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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

  1. पायथन प्रोग्राम में इंसर्शन सॉर्ट

    इस लेख में, हम पायथन 3.x में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम प्रत्येक पुनरावृत्ति पर क्रमबद्ध सरणी को बढ़ाकर इनपुट तत्वों पर पुनरावृति करें। सॉर्ट किए गए सरणी में उपलब्ध सबसे बड़े मान के साथ वर्तमान तत्व की तुलना करें। यदि वर्तमान तत्व अधिक है, तो यह तत्