मान लीजिए हमारे पास कार्यों की एक सूची है और लोगों की एक और सूची है। कार्य [i] ith कार्य को करने के लिए आवश्यक शक्ति की मात्रा निर्धारित करता है। और लोग [i] यह निर्धारित करते हैं कि ith व्यक्ति के पास कितनी ताकत है। अंत में, हमें उन कार्यों की संख्या का पता लगाना होगा जिन्हें पूरा किया जा सकता है यदि एक व्यक्ति अधिक से अधिक एक कार्य कर सकता है।
इसलिए, यदि इनपुट कार्यों की तरह है =[4, 3, 9, 15], लोग =[10, 5, 3, 2], तो आउटपुट 3 होगा, क्योंकि पहला व्यक्ति कार्य 9 कर सकता है, दूसरा व्यक्ति कर सकता है कार्य 4 निष्पादित करें, तीसरा व्यक्ति कार्य 3 कर सकता है, और चौथा व्यक्ति कोई कार्य नहीं कर सकता।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- सूची कार्यों को क्रमबद्ध करें, सूची लोगों को क्रमबद्ध करें
- सीटी:=0, इंडस्ट्रीज़:=0
- मेरे लिए 0 से लेकर लोगों के आकार तक, करें
- जे के लिए श्रेणी और कार्यों के आकार के लिए, करें
- यदि लोग[i]>=कार्य[j], तो
- सीटी:=सीटी + 1
- इंड:=इंड + 1
- लूप से बाहर आएं
- अन्यथा,
- लूप से बाहर आएं
- यदि लोग[i]>=कार्य[j], तो
- जे के लिए श्रेणी और कार्यों के आकार के लिए, करें
- वापसी सीटी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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