ได้อาร์เรย์ nums มีค่าสูงสุดเพียงค่าเดียว ตรวจสอบว่าค่าสูงสุดนี้มากกว่าหรือเท่ากับสองเท่าของทุกค่าอื่นในอาร์เรย์ หากใช่ คืนดัชนีของค่าสูงสุด มิฉะนั้นคืน -1
ตัวอย่าง
[3,6,1,0] → ค่าสูงสุด 6 (ดัชนี 1) 6 ≥ 2×3, 2×1, 2×0 → คืน 1
ขั้นตอนการแก้ปัญหา
- หาค่าสูงสุด
maximum = max(nums) - วนหาดัชนีของค่าสูงสุด
- ตรวจสอบทุกค่าอื่น: ถ้า
maximum < 2 * nums[i]→ คืน -1 - จบลูป → คืนดัชนีค่าสูงสุด
การติดตั้งใน Python
class Solution:
def dominantIndex(self, nums):
maximum = max(nums)
max_index = nums.index(maximum)
for i, val in enumerate(nums):
if i != max_index and maximum < 2 * val:
return -1
return max_index
ob = Solution()
print(ob.dominantIndex([3, 6, 1, 0])) # 1
อินพุต / เอาต์พุต
Input: [3, 6, 1, 0] Output: 1