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

पायथन में बिल्कुल k अद्वितीय तत्वों के साथ उपन्यासकारों की संख्या गिनने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है, हमें उन उप-सूची की संख्या ज्ञात करनी है जो उप-सूची में बिल्कुल k अद्वितीय संख्याएं हैं।

इसलिए, यदि इनपुट संख्या =[2, 2, 3, 4] k =2 की तरह है, तो आउटपुट 3 होगा, क्योंकि हमारे पास उप-सूचियाँ हैं जैसे:[2, 2, 3], [2, 3], [3, 4]।

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

  • फ़ंक्शन को परिभाषित करें count() । यह कश्मीर ले जाएगा
  • स्लॉट :=एक खाली नक्शा, डिफ़ॉल्ट रूप से सभी मान 0 होते हैं
  • i :=Res :=0
  • प्रत्येक अनुक्रमणिका j के लिए, और मान x अंक, करें
    • स्लॉट[x] :=स्लॉट[x] + 1
    • स्लॉट का आकार> K, करते समय
      • स्लॉट[nums[i]] :=स्लॉट[nums[i]] - 1
      • यदि स्लॉट[nums[i]] 0 के समान है, तो
        • स्लॉट हटाएं[nums[i]]
      • i :=i + 1
    • res :=res + j - i + 1
  • रिटर्न रेस
  • मुख्य विधि से निम्न कार्य करें -
  • रिटर्न काउंट (के) - काउंट (के -1)

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

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

from collections import Counter
class Solution:
   def solve(self, nums, k):
      def count(K):
         slot = Counter()
         i = res = 0
         for j, x in enumerate(nums):
            slot[x] += 1
            while len(slot) > K:
               slot[nums[i]] -= 1
               if slot[nums[i]] == 0:
                  del slot[nums[i]]
               i += 1
            res += j - i + 1
         return res
      return count(k) - count(k - 1)
ob = Solution()
nums = [2, 2, 3, 4]
k = 2
print(ob.solve(nums, k))

इनपुट

[2, 2, 3, 4], 2

आउटपुट

3

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

    मान लीजिए कि हमारे पास अलग-अलग नोड हैं। सभी अलग हैं। हमें यह पता लगाना है कि हम उन्हें कितने तरीकों से व्यवस्थित कर सकते हैं ताकि हम बाइनरी सर्च ट्री बना सकें। जैसा कि हम बाइनरी सर्च ट्री के बारे में जानते हैं, लेफ्ट सबट्री में हमेशा छोटे मान होते हैं और राइट सबट्री में बड़े मान होते हैं। इसे हल कर

  1. पायथन में दिए गए किनारों को शामिल करने वाले अद्वितीय पथों की संख्या की गणना करने का कार्यक्रम

    मान लीजिए कि हमारे पास (u, v) के रूप में किनारों की एक सूची है और ये एक पेड़ का प्रतिनिधित्व कर रहे हैं। प्रत्येक किनारे के लिए हमें इनपुट में दिए गए क्रम में उसी क्रम में अद्वितीय पथों की कुल संख्या ज्ञात करनी होगी जिसमें उक्त किनारे शामिल हैं। इसलिए, यदि इनपुट किनारों की तरह है =[[0, 1],[0, 2],[1

  1. पायथन में 0 से n मानों के साथ अद्वितीय बाइनरी सर्च ट्री की संख्या गिनने का कार्यक्रम बनाया जा सकता है

    मान लीजिए कि हमारे पास एक संख्या n है, हमें उन अद्वितीय BST की संख्या ज्ञात करनी है जिन्हें हम [0, n) से संख्याओं के साथ उत्पन्न कर सकते हैं। यदि उत्तर बहुत बड़ा मॉड है तो परिणाम 10^9+7 इसलिए, यदि इनपुट n =3 जैसा है, तो आउटपुट 5 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - संख्या :=1