मान लीजिए हमारे पास कार्यों की एक सूची और लोगों की एक अन्य सूची है। tasks[i] iवें कार्य को करने के लिए आवश्यक ताकत निर्धारित करता है। और people[i] iवें व्यक्ति की ताकत निर्धारित करता है। अंत में, हमें उन कार्यों की संख्या ढूंढनी है जो पूरे किए जा सकते हैं यदि एक व्यक्ति अधिकतम एक कार्य कर सकता है।
उदाहरण के लिए, यदि इनपुट है tasks = [4, 3, 9, 15], people = [10, 5, 3, 2], तो आउटपुट होगा 3, क्योंकि पहला व्यक्ति कार्य 9 कर सकता है, दूसरा व्यक्ति कार्य 4 कर सकता है, तीसरा व्यक्ति कार्य 3 कर सकता है, और चौथा व्यक्ति कोई कार्य नहीं कर सकता।
हल करने के चरण
tasksसूची को क्रमबद्ध करें,peopleसूची को क्रमबद्ध करें।ct := 0,ind := 0iको 0 सेpeopleके आकार तक:jकोindसेtasksके आकार तक:- यदि
people[i] >= tasks[j], तो:ct := ct + 1ind := ind + 1- लूप से बाहर निकलें।
- अन्यथा, लूप से बाहर निकलें।
- यदि
ctलौटाएं।
उदाहरण
class Solution:
def solve(self, tasks, people):
tasks.sort()
people.sort()
ct = 0
ind = 0
for i in range(len(people)):
for j in range(ind, len(tasks)):
if people[i] >= tasks[j]:
ct += 1
ind += 1
break
else:
break
return ct
ob = Solution()
tasks = [4, 3, 9, 15]
people = [10, 5, 3, 2]
print(ob.solve(tasks, people))
इनपुट
[4, 3, 9, 15], [10, 5, 3, 2]
आउटपुट
3