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

पायथन में कम से कम समय लेने के लिए कार्यों को शेड्यूल करने का कार्यक्रम

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

इसलिए, यदि इनपुट संख्या =[2, 2, 2, 3, 3, 2], के =1 की तरह है, तो आउटपुट 7 होगा, क्योंकि इष्टतम क्रम [2, 3, 2, 3, 2, प्रतीक्षा, 2].

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

  • c :=अंकों में सभी मानों की गणना

  • उत्तर:=0, अंतिम आकार:=0

  • जबकि c गैर-शून्य है, करें

    • अंतिम आकार :=c का आकार

    • प्रत्येक मान x के लिए सबसे सामान्य (k + 1) c के मानों में, करें

      • c[x] :=c[x] - 1

        • अगर c[x] 0 के समान है, तो

          • c[x]

            हटाएं
    • उत्तर:=उत्तर + के + 1

  • वापसी उत्तर + अंतिम आकार - (के + 1)

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

उदाहरण

class Solution:
   def solve(self, nums, k):
      from collections import Counter
      c = Counter(nums)
      ans = 0
      lastsize = 0
      while c:
         lastsize = len(c)
         for x, _ in c.most_common(k + 1):
            c[x] -= 1
            if c[x] == 0:
               del c[x]
         ans += k + 1
      return ans + lastsize - (k + 1)
ob1 = Solution()
nums = [2, 2, 2, 3, 3, 2]
k = 1
print(ob1.solve(nums, k))

इनपुट

[2, 2, 2, 3, 3, 2], 1

आउटपुट

7

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

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

  1. 2D सरणी में k'th सबसे छोटा तत्व खोजने के लिए पायथन प्रोग्राम

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

  1. मैं पायथन प्रोग्राम के निष्पादन का समय कैसे प्राप्त करूं?

    किसी प्रोग्राम के निष्पादन के समय को मापने के लिए, या तो time.clock() या time.time() फ़ंक्शन का उपयोग करें। पायथन डॉक्स बताता है कि इस फ़ंक्शन का उपयोग बेंचमार्किंग उद्देश्यों के लिए किया जाना चाहिए। उदाहरण import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Tim