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

पायथन में लेबल से सबसे बड़ा मूल्य

मान लीजिए कि हमारे पास वस्तुओं का एक सेट है:i-वें आइटम में मूल्य मान हैं [i] और लेबल लेबल [i]। फिर, हम इन मदों का एक उपसमुच्चय S लेंगे, जैसे कि -

  • |एस| <=num_wanted
  • प्रत्येक लेबल L के लिए, लेबल L के साथ S में मौजूद वस्तुओं की संख्या <=use_limit है।

हमें उपसमुच्चय S का अधिकतम संभव योग ज्ञात करना है।

उदाहरण के लिए, यदि इनपुट मानों की तरह है =[5,4,3,2,1] और लेबल [1,1,2,2,3] हैं, num_wanted =3, use_limit =1, तो आउटपुट 9 होगा . ऐसा इसलिए है क्योंकि पहले, तीसरे और पांचवें आइटम में चुना गया सबसेट।

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

  • एक सरणी v बनाएं
  • मैं के लिए 0 से लेकर मानों की लंबाई तक
    • v में [मान[i], लेबल[i]] डालें
  • v सरणी को क्रमबद्ध करें
  • उत्तर:=0, उपयोग करें:=खाली नक्शा, और मैं :=0
  • जबकि num_wanted और i
  • अगर v[i, 1] उपयोग के नक्शे में मौजूद नहीं है
    • num_wanted को 1 से कम करें
    • उत्तर:=उत्तर + वी[i, 0]
    • उपयोग[v[i, 1]] :=1
  • अन्यथा उपयोग करें[v[i, 1]]
  • num_wanted को 1 से कम करें
  • उत्तर:=उत्तर + वी[i, 0]
  • उपयोग बढ़ाएं[v[i, 1]] 1 तक
  • मैं 1 से बढ़ाएँ
  • वापसी उत्तर
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class Solution(object):
       def largestValsFromLabels(self, values, labels, num_wanted, use_limit):
          v = []
          for i in range(len(values)):
             v.append([values[i],labels[i]])
          v = sorted(v,key = lambda v:v[0],reverse=True)
          ans = 0
          use = {}
          i = 0
          while num_wanted and i < len(v):
             if v[i][1] not in use:
                num_wanted -=1
                ans+=v[i][0]
                use[v[i][1]] = 1
             elif use[v[i][1]]<use_limit:
                num_wanted -=1
                ans+=v[i][0]
                use[v[i][1]]+=1
             i+=1
          return ans
    ob = Solution()
    print(ob.largestValsFromLabels([5,4,3,2,1],[1,1,2,2,3],3,1))

    इनपुट

    [5,4,3,2,1]
    [1,1,2,2,3]
    3
    1

    आउटपुट

    9

    1. पायथन में सबसे बड़ा त्रिभुज क्षेत्र

      मान लीजिए कि हमारे पास एक विमान पर बिंदुओं की एक सूची है। हमें सबसे बड़े त्रिभुज का क्षेत्रफल ज्ञात करना है जो कि किसी भी 3 बिंदुओं से बन सकता है। इसलिए, यदि इनपुट [[0,0], [0,1], [1,0], [0,2], [2,0]] जैसा है, तो आउटपुट 2 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - res :=0 N :=अंक सूच

    1. पायथन में सूची के शब्दकोश से मूल्यों का मेल

      मान लीजिए कि हमारे पास एक पायथन डिक्शनरी है जिसमें सूचियाँ हैं क्योंकि यह प्रमुख मूल्य जोड़े में मान है। हमें एक सूची बनाने की आवश्यकता है जो दी गई सूचियों से कुंजियों और मूल्यों के सभी संभावित संयोजनों का प्रतिनिधित्व करेगी। क्रमबद्ध और उत्पाद के साथ itertools से उत्पाद फ़ंक्शन का उपयोग पैरामीटर क

    1. पायथन में लीफ वैल्यू से न्यूनतम लागत का पेड़

      मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी है, सभी बाइनरी पेड़ों पर विचार करें जैसे कि - प्रत्येक नोड में 0 या 2 बच्चे होते हैं; गिरफ्तारी सरणी के मान पेड़ के इन-ऑर्डर ट्रैवर्सल में प्रत्येक पत्ते के मूल्यों के अनुरूप होते हैं। प्रत्येक गैर-पत्ती नोड का मान क्रमशः इसके बाएँ और दाएँ उपप्