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

पायथन में आकार k के लेक्सिकोग्राफिकली सबसे छोटे सबसीक्वेंस खोजने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है और एक मान k है, हमें आकार k का लेक्सिकोग्राफिकली सबसे छोटा सबसीक्वेंस ढूंढना है।

उदाहरण के लिए, यदि इनपुट nums = [2, 3, 1, 10, 3, 4], k = 3 है, तो आउटपुट [1, 3, 4] होगा।

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम ग्रीडी दृष्टिकोण का उपयोग करेंगे:

  • l := nums का आकार, r := k - 1
  • out := एक नई लिस्ट
  • j को 0 से k-1 तक लूप चलाएं:
    • mn := nums[~r] (रिवर्स इंडेक्स)
    • i को r से l-1 तक लूप चलाएं:
      • यदि mn >= nums[~i] है, तो mn := nums[~i] और l := i
    • r := r - 1
    • mn को out के अंत में जोड़ें
  • out लौटाएं

पायथन कार्यान्वयन

class Solution:
    def solve(self, nums, k):
        l, r = len(nums), k - 1
        out = []
        for j in range(k):
            mn = nums[~r]
            for i in range(r, l):
                if mn >= nums[~i]:
                    mn = nums[~i]
                    l = i
            r -= 1
            out.append(mn)
        return out

ob = Solution()
nums = [2, 3, 1, 10, 3, 4]
k = 3
print(ob.solve(nums, k))

इनपुट

[2, 3, 1, 10, 3, 4], 3

आउटपुट

[1, 3, 4]
  1. - Python - रैखिक समय में आकार 3 का सॉर्टेड सबसीक्वेंस ढूंढना

    मान लीजिए हमारे पास N नंबर्स की एक ऐरे है, हमें चेक करना है कि क्या 3 एलिमेंट्स ऐसे हैं कि b[i] < b[j] < b[k] और i < j < k रैखिक (O(n)) समय में। यदि ऐसे कई ट्रिपलेट्स हैं, तो उनमें से कोई भी एक प्रिंट करें। तो, यदि इनपुट [13, 12, 11, 6, 7, 3, 31] जैसा है, तो आउटपुट [6, 7, 31] होगा। इसे हल करने के लि

  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

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

  1. - पायथन प्रोग्राम: 2D ऐरे में k-वां सबसे छोटा एलिमेंट खोजना

    एक n×n यूजर इनपुट इंटीजर मैट्रिक्स दिया गया है और k का मान। हमारा कार्य 2D ऐरे में k-वां सबसे छोटा एलिमेंट ढूंढना है। यहां हम heapq मॉड्यूल का उपयोग करते हैं। पायथन में हीप क्यू (या heapq) उपलब्ध है। इस मॉड्यूल की तकनीक यह है कि हर बार हीप एलिमेंट का सबसे छोटा पॉप किया जाता है (मिन हीप)। nsmallest()