สมมติว่าเรามีรายการคะแนนสำหรับผู้เข้าร่วมจำนวนต่างกัน เราต้องหาคะแนนรองชนะเลิศให้ได้
ดังนั้น หากข้อมูลที่ป้อนเข้าเหมือนกับคะแนน =[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