मान लीजिए कि हमारे पास शहरों की संख्या N है, और उनकी संख्या 0 से N-1 तक है और हमारे पास ऐसे शहर भी हैं जिनमें स्टेशन स्थित हैं, हमें किसी भी शहर के बीच अधिकतम दूरी ज्ञात करनी है शहर और उसके निकटतम स्टेशन। हमें यह ध्यान रखना होगा कि स्टेशनों वाले शहरों को किसी भी क्रम में दिया जा सकता है।
इसलिए, यदि इनपुट एन =6 और स्टेशनों =[2,4] जैसा है, तो आउटपुट 2
. होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
स्टेशन_प्रेजेंट :=आकार N की एक सूची, और गलत से भरें
-
स्टेशन के हर शहर के लिए करें
-
स्टेशन_वर्तमान [शहर] :=सच
-
-
जिला :=0, मैक्सिमम_डिस्ट :=स्टेशन का न्यूनतम
-
0 से N के बीच के शहर के लिए, करें
-
अगर स्टेशन_प्रेजेंट [शहर] सही है, तो
-
max_dist :=अधिकतम (dist + 1) / 2, max_dist
-
जिला :=0
-
-
अन्यथा,
-
जिला :=जिला + 1
-
-
-
अधिकतम_dist, जिला
. की अधिकतम वापसी करें
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def get_max_dist(N, station): station_present = [False] * N for city in station: station_present[city] = True dist, maximum_dist = 0, min(station) for city in range(N): if station_present[city] == True: maximum_dist = max((dist + 1) // 2, maximum_dist) dist = 0 else: dist += 1 return max(maximum_dist, dist) N = 6 station = [2, 4] print(get_max_dist(N, station))
इनपुट
6, [2,4]
आउटपुट
2