Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Largest Number At Least Twice of Others ใน Python: หาดัชนีค่าสูงสุดที่มากกว่าสองเท่าทุกตัว

ได้อาร์เรย์ nums มีค่าสูงสุดเพียงค่าเดียว ตรวจสอบว่าค่าสูงสุดนี้มากกว่าหรือเท่ากับสองเท่าของทุกค่าอื่นในอาร์เรย์ หากใช่ คืนดัชนีของค่าสูงสุด มิฉะนั้นคืน -1

ตัวอย่าง

[3,6,1,0] → ค่าสูงสุด 6 (ดัชนี 1) 6 ≥ 2×3, 2×1, 2×0 → คืน 1

ขั้นตอนการแก้ปัญหา

  1. หาค่าสูงสุด maximum = max(nums)
  2. วนหาดัชนีของค่าสูงสุด
  3. ตรวจสอบทุกค่าอื่น: ถ้า maximum < 2 * nums[i] → คืน -1
  4. จบลูป → คืนดัชนีค่าสูงสุด

การติดตั้งใน 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