मान लीजिए कि हमारे पास शो नामक स्ट्रिंग्स की सूची की एक सूची है, पूर्णांकों की एक सूची भी है जिसे ड्यूरेशन कहा जाता है, और दूसरा मान k, यहां दिखाता है [i] और अवधि [i] एक शो का प्रतिनिधित्व करते हैं और इसकी अवधि ith आदमी द्वारा देखी जाती है, हमारे पास है k सबसे ज्यादा देखे जाने वाले शो की कुल अवधि का पता लगाने के लिए।
इसलिए, यदि इनपुट शो की तरह है =["बीजीटी", "जैक जम्पर", "द बीजीटी", "जोकर्स कंपनी", "म्यूजिक मैजिक"] अवधि =[10, 8, 10, 18, 9] के =2 है, तो आउटपुट 38 होगा, क्योंकि शीर्ष 2 सबसे अधिक देखे जाने वाले शो "जोकर्स कंपनी" और "द बीजीटी" हैं और कुल अवधि 18 और 10 + 10 =20 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर शो खाली है या अवधि खाली है या k 0 है, तो
-
वापसी 0
-
-
d :=एक खाली शब्दकोश
-
मेरे लिए 0 से लेकर शो के आकार तक के लिए, करें
-
d[दिखाता है[i]] :=d[दिखाता है[i]] + अवधि[i]
-
-
एल:=एक नई सूची
-
प्रत्येक i in d के लिए, करें
-
l के अंत में d[i] डालें
-
-
सूची l को उल्टे क्रम में क्रमित करें
-
मैं :=0
-
उत्तर:=0
-
जबकि मैं <के, करता हूं
-
उत्तर:=उत्तर + एल[i]
-
मैं :=मैं + 1
-
-
वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
from collections import defaultdict def solve(shows, durations, k): if not shows or not durations or not k: return 0 d = defaultdict(int) for i in range(len(shows)): d[shows[i]] += durations[i] l = [] for i in d: l.append(d[i]) l.sort(reverse=True) i = 0 answer = 0 while i < k: answer += l[i] i += 1 return answer shows = ["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"] durations = [10, 8, 10, 18, 9] k = 2 print(solve(shows, durations, k))
इनपुट
["The BGT", "Jack jumper", "The BGT", "Jokers Company", "Music magic"], [10, 8, 10, 18, 9], 2
आउटपुट
38