मान लीजिए कि हमारे पास [प्रारंभ, अंत] के रूप में अंतराल की एक सूची है, यह एक पाठ्यक्रम के प्रारंभ और समाप्ति समय का प्रतिनिधित्व कर रहा है। यह मानते हुए कि हम एक समय में केवल एक ही पाठ्यक्रम ले सकते हैं, हमें पाठ्यक्रम की अधिकतम संख्या ज्ञात करनी होगी और पाठ्यक्रम की शुरुआत अंतिम पाठ्यक्रम के अंत के बाद की होनी चाहिए।
इसलिए, यदि इनपुट समय की तरह है =[[3, 6], [6, 9], [7, 8], [9, 11]], तो आउटपुट 3 होगा, क्योंकि हम पाठ्यक्रम ले सकते हैं [[3 , 6], [7, 8], [9, 11]]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
-
समाप्ति समय के आधार पर क्रमबद्ध समय
-
काउंटर:=0, अंत:=-1
-
मैं के लिए 0 से समय के आकार की सीमा में, करते हैं
-
अगर बार[i, 0]> अंत शून्य नहीं है, तो
-
काउंटर :=काउंटर + 1
-
अंत:=बार[i, 1]
-
-
-
वापसी काउंटर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, times): times.sort(key=lambda x: x[1]) counter = 0 end = -1 for i in range(len(times)): if times[i][0] > end: counter += 1 end = times[i][1] return counter ob = Solution() times = [ [3, 6], [6, 9], [7, 8], [9, 11] ] print(ob.solve(times))
इनपुट
[ [3, 6],[6, 9],[7, 8],[9, 11]]
आउटपुट
3