题目
给你一个整数数组 nums
,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1
。
示例1:
1 | 输入:nums = [3,6,1,0] |
示例2:
1 | 输入:nums = [1,2,3,4] |
示例3:
1 | 输入:nums = [1] |
提示:
1 <= nums.length <= 50
0 <= nums[i] <= 100
nums
中的最大元素是唯一的
解法:
解法一:
暴力
先找出最大的数值,挨个判断是否是剩下的两倍大。
需要注意的是要在比较的时候要排除自身。
Java
1 | public int dominantIndex(int[] nums) { |
解法二:
遍历一次
在遍历的时候选出最大值和第二大的值,判断最大值是否是第二大值的两倍。
Java
1 | public int dominantIndex(int[] nums) { |
解法三:
遍历一次
在遍历的时候直接判断最大值是否满足要求
Java
1 | public int dominantIndex(int[] nums) { |