สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ที่มีค่า n ซึ่งแต่ละหมายเลขแสดงถึงการลงคะแนนให้กับผู้สมัคร เราต้องหารหัสของผู้สมัครที่มีคะแนนเสียงมากกว่าชั้น (n/2) และหากไม่มีคะแนนเสียงข้างมากให้ส่งคืน -1
ดังนั้น หากอินพุตเป็น nums =[6, 6, 2, 2, 3, 3, 3, 3, 3] ผลลัพธ์จะเป็น 3
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- l :=ขนาดของ nums
- จำนวน :=แผนที่ที่มีตัวเลขแต่ละตัวและการเกิดขึ้นของมัน
- สำหรับแต่ละจำนวน i และการเกิด j ในการนับ ทำ
- ถ้า j> (l / 2) แล้ว
- คืนฉัน
- ถ้า j> (l / 2) แล้ว
- คืน -1
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, nums): l = len(nums) from collections import Counter count = Counter(nums) for i, j in count.items(): if j > (l // 2): return i return -1 ob = Solution() nums = [6, 6, 2, 2, 3, 3, 3, 3, 3] print(ob.solve(nums))
อินพุต
[6, 6, 2, 2, 3, 3, 3, 3, 3]
ผลลัพธ์
3