747.至少是其他数字两倍的最大数

66 阅读1分钟

题目:
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。

请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
算法:
方法一:找最大和第二大的元素

func dominantIndex(nums []int) int {
	max, secondMax := 0, 0
	for i := range nums {
		if nums[i] > nums[max] {
			secondMax = max
			max = i
		} else if max == secondMax || nums[i] > nums[secondMax]  {
			secondMax = i
		}

	}
	// fmt.Println(max, secondMax)
	if nums[max] >= 2 * nums[secondMax] {
		return max
	}
	return -1
}