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

पायथन में k ऑपरेशंस द्वारा दोहराए गए नंबरों वाली सबसे लंबी सबलिस्ट की लंबाई खोजने का कार्यक्रम

मान लीजिए कि हमारे पास nums नामक एक सूची है और एक मान k है, अब आइए एक ऑपरेशन पर विचार करें जिसके द्वारा हम सूची में किसी भी संख्या के मान को अपडेट कर सकते हैं। हमें सबसे लंबी सबलिस्ट की लंबाई का पता लगाना है जिसमें अधिकांश k ऑपरेशन करने के बाद बार-बार नंबर होते हैं।

इसलिए, यदि इनपुट अंकों की तरह है =[8, 6, 6, 4, 3, 6, 6] k =2, तो आउटपुट 6 होगा, क्योंकि हम इस सरणी को बनाने के लिए 4 और 3 से 6 बदल सकते हैं [ 8, 6, 6, 6, 6, 6, 6], और सभी 6s के साथ सबलिस्ट की लंबाई 6 है।

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

  • अगर अंक खाली हैं, तो

    • वापसी 0

  • num_count :=एक खाली नक्शा

  • max_count :=0

  • प्रारंभ:=0

  • प्रत्येक अनुक्रमणिका के अंत और अंकों में मान संख्या के लिए, करें

    • num_count[num] :=num_count[num] + 1

    • max_count :=अधिकतम max_count और num_count[num]

    • यदि अंत - प्रारंभ + 1> max_count + k, तब

      • num_count[nums[start]] :=num_count[nums[start]] - 1

      • प्रारंभ:=प्रारंभ + 1

  • वापसी का अंत - प्रारंभ + 1

उदाहरण

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

from collections import defaultdict
def solve(nums, k):
   if not nums:
      return 0

   num_count = defaultdict(int)
   max_count = 0
   start = 0

   for end, num in enumerate(nums):
      num_count[num] += 1
      max_count = max(max_count, num_count[num])
      if end - start + 1 > max_count + k:
         num_count[nums[start]] -= 1
         start += 1
   return end - start + 1

nums = [8, 6, 6, 4, 3, 6, 6]
k = 2
print(solve(nums, k))

इनपुट

[8, 6, 6, 4, 3, 6, 6], 2

आउटपुट

6

  1. पायथन में दोहराए गए नोड्स के बिना डीएजी में सबसे लंबे पथ की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है जो आसन्न सूची द्वारा दर्शाया गया है। हमें ग्राफ़ में नोड दोहराव के बिना सबसे लंबा रास्ता खोजना होगा। तो, अगर इनपुट पसंद है 2 लंबाई 4 के साथ है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - उत्तर:=0 n :=ग्राफ़ की नोड संख्या तालिका :=आकार n

  1. पायथन में सबसे लंबे समय तक संतुलित बाद की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है जिसमें कोष्ठक कोष्ठक ( और ) है, हमें संतुलित कोष्ठकों के सबसे लंबे बाद के क्रम की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट s =())(()( जैसा है, तो आउटपुट 4 होगा, क्योंकि हम बाद में ()() ले सकते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - रेस :=0

  1. पायथन में सन्निहित कड़ाई से बढ़ती उपसूची की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जब हम सूची से एक या शून्य तत्वों को हटा सकते हैं, तो हमें एक सन्निहित सख्ती से बढ़ती उप-सूची की अधिकतम लंबाई का पता लगाना होगा। इसलिए, यदि इनपुट संख्या =[30, 11, 12, 13, 14, 15, 18, 17, 32] की तरह है, तो आउटपुट 7 होगा, क्योंकि जब ह