สมมติว่าเรามีรายการคะแนนสำหรับผู้เข้าร่วมจำนวนต่างกัน เราต้องหาคะแนนรองชนะเลิศให้ได้
ดังนั้น หากข้อมูลที่ป้อนเข้าเหมือนกับคะแนน =[5,8,2,6,8,5,8,7] ผลลัพธ์จะเป็น 7 เนื่องจากคะแนนผู้ชนะคือ 8 และคะแนนที่มากที่สุดเป็นอันดับสองคือ 7
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ผู้ชนะ :=-99999
- runner_up :=-99999
- สำหรับแต่ละ i ในคะแนน ทำ
- ถ้าฉัน> ผู้ชนะ แล้ว
- ผู้ชนะ :=ฉัน
- runner_up :=ผู้ชนะ
- มิฉะนั้น เมื่อฉัน <ผู้ชนะ และฉัน> รองชนะเลิศ แล้ว
- runner_up :=ฉัน
- ถ้าฉัน> ผู้ชนะ แล้ว
- กลับ 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