मान लीजिए हमारे पास विभिन्न प्रतिभागियों के स्कोर की एक सूची है। हमें रनर-अप स्कोर ढूंढना है।
उदाहरण के लिए, यदि इनपुट scores = [5,8,2,6,8,5,8,7] है, तो आउटपुट 7 होगा क्योंकि विजेता स्कोर 8 है और दूसरा सबसे बड़ा स्कोर 7 है।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- winner := -99999
- runner_up := -99999
- scores में प्रत्येक i के लिए, करें
- यदि i > winner, तो
- winner := i
- runner_up := winner
- अन्यथा जब i < winner और i > runner_up, तो
- runner_up := i
- यदि i > winner, तो
- runner_up लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(scores):
winner = -99999
runner_up = -99999
for i in scores:
if (i > winner):
winner, runner_up = i, winner
elif (i < winner and i > runner_up):
runner_up = i
return runner_up
scores = [5,8,2,6,8,5,8,7]
print(solve(scores))इनपुट
[5,8,2,6,8,5,8,7]
आउटपुट
7