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

पायथन में समान प्रकार के कार्यों के बीच k समय अंतराल के साथ कार्यों को पूरा करने के लिए आवश्यक न्यूनतम समय खोजने के लिए कार्यक्रम

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

इसलिए, यदि इनपुट कार्यों की तरह है =[0, 1, 1, 2] k =2, तो आउटपुट 6 होगा, क्योंकि पहले दो कार्य अलग-अलग प्रकार के होते हैं, इसलिए उन्हें बिना किसी अंतराल के निष्पादित किया जा सकता है, अब समय पर 2, अगला कार्य उसी प्रकार का कार्य है जिसके लिए हमें 2-समय के स्लॉट की प्रतीक्षा करनी है, फिर कार्य करना है और अंत में अन्य प्रकार का कार्य करना है, टाइप 2। तो यह कार्य करें। तो यह [0, 1, रुको, रुको, 1, 2] जैसा है। इससे हम पहचान सकते हैं, हमें 6 टाइम स्लॉट चाहिए।

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

  • चिह्नित करें:=0
  • स्लॉट:=एक नया नक्शा
  • कार्य में प्रत्येक t के लिए, करें
    • tf:=स्लॉट[t] अगर t स्लॉट में है
    • यदि tf रिक्त नहीं है और tf - टिक> 0 है, तो
      • टिक करें:=टिक + tf - टिक करें
    • चिह्नित करें:=टिक + 1
    • स्लॉट[t] :=टिक + k
  • रिटर्न टिक

उदाहरण

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

def solve(tasks, k):
   tick = 0
   slot = {}
   for t in tasks:
      tf = slot.get(t)
      if tf is not None and tf - tick > 0:
         tick += tf - tick
      tick += 1
      slot[t] = tick + k

   return tick

tasks = [0, 1, 1, 2]
k = 2
print(solve(tasks, k))

इनपुट

[0, 1, 1, 2]

आउटपुट

6

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

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

  1. कार्यों की संख्या खोजने का कार्यक्रम पायथन में दी गई शर्तों के साथ समाप्त किया जा सकता है

    मान लीजिए हमारे पास कार्यों की एक सूची है और लोगों की एक और सूची है। कार्य [i] ith कार्य को करने के लिए आवश्यक शक्ति की मात्रा निर्धारित करता है। और लोग [i] यह निर्धारित करते हैं कि ith व्यक्ति के पास कितनी ताकत है। अंत में, हमें उन कार्यों की संख्या का पता लगाना होगा जिन्हें पूरा किया जा सकता है यद

  1. पायथन में एक नंबर से दूसरे नंबर बनाने के लिए आवश्यक न्यूनतम संख्या में संचालन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक नंबर स्टार्ट है और दूसरा नंबर एंड (स्टार्ट <एंड) है, हमें इन ऑपरेशंस का उपयोग करके स्टार्ट टू एंड को कन्वर्ट करने के लिए आवश्यक ऑपरेशंस की न्यूनतम संख्या ज्ञात करनी होगी - 1 से वृद्धि 2 से गुणा करें इसलिए, यदि इनपुट प्रारंभ =5, अंत =11 जैसा है, तो आउटपुट 2 होगा, क्योंकि