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

पायथन में आकार k के बढ़ते सबसीक्वेंस की संख्या खोजने का प्रोग्राम


मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है और एक मान k है, हमें आकार k के उन सबसीक्वेंस की संख्या ढूंढनी है जो सख्ती से बढ़ते हैं। यदि उत्तर बहुत बड़ा है, तो इसे 10^9 + 7 से मॉड करें।

उदाहरण के लिए, यदि इनपुट nums = [2, 3, 4, 1], k = 2 है, तो आउटपुट 3 होगा, क्योंकि हमारे पास आकार 2 के सबसीक्वेंस हैं: [2, 3], [3, 4], [2, 4]।

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

इस समस्या को हल करने के लिए हम डायनामिक प्रोग्रामिंग का उपयोग करेंगे:

  • m := 10^9 + 7
  • dp := nums के आकार की लिस्ट, 1 से भरी हुई
  • k - 1 बार निम्नलिखित दोहराएं:
    • j को dp के आकार - 1 से 0 तक घटाते हुए लूप चलाएं:
      • dp[j] := 0
      • i को 0 से j-1 तक लूप चलाएं:
        • यदि nums[i] < nums[j] है, तो dp[j] := dp[j] + dp[i]
  • (dp के सभी तत्वों का योग) mod m लौटाएं

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

class Solution:
    def solve(self, nums, k):
        m = 10 ** 9 + 7
        dp = [1] * len(nums)
        for _ in range(k - 1):
            for j in range(len(dp) - 1, -1, -1):
                dp[j] = 0
                for i in range(j):
                    if nums[i] < nums[j]:
                        dp[j] += dp[i]
        return sum(dp) % m

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

इनपुट

[2, 3, 4, 1], 2

आउटपुट

3
  1. पायथन में BST में रेंज में नोड्स की संख्या खोजने का प्रोग्राम पायथन में BST में रेंज में नोड्स की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक BST है, और हमारे पास बाएं और दाएं बाउंड l और r भी हैं, हमें रूट में उन सभी नोड्स की संख्या गिननी है जिनके मान l और r के बीच हैं (सम्मिलित)। उदाहरण के लिए, यदि इनपुट जैसा है: l = 7, r = 13, तो आउटपुट 3 होगा, क्योंकि तीन नोड्स हैं: 8, 10, 12। इसे हल करने के लिए हम निम्न चरणों

  1. - पायथन प्रोग्राम में अभाज्य संख्या खोजने के विभिन्न तरीके

    इस ट्यूटोरियल में, हम यह जांचने के विभिन्न तरीकों का पता लगाने जा रहे हैं कि दी गई संख्या अभाज्य है या नहीं। आइए बिना किसी देरी के शुरू करें। विधि-1 यह अभाज्य संख्या खोजने की एक सामान्य विधि है। यदि संख्या एक से कम या बराबर है, तो False लौटाएं। यदि संख्या किसी संख्या से विभाज्य है, तो फंक्शन False

  1. - पायथन प्रोग्राम: लिस्ट में सबसे बड़ी संख्या ढूंढें

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