在一个给定的数组nums中,老是存在一个最大元素 。java
查找数组中的最大元素是否至少是数组中每一个其余数字的两倍。数组
若是是,则返回最大元素的索引,不然返回-1。dom
示例 1:ide
输入: nums = [3, 6, 1, 0]
输出: 1
解释: 6是最大的整数, 对于数组中的其余整数,
6大于数组中其余元素的两倍。6的索引是1, 因此咱们返回1.spa
示例 2:code
输入: nums = [1, 2, 3, 4]
输出: -1
解释: 4没有超过3的两倍大, 因此咱们返回 -1.索引
提示:it
nums 的长度范围在[1, 50].
每一个 nums[i] 的整数范围在 [0, 100].io
PS:
找出最大的两个数,而后看看第一大的是否是第二大的的二倍多,不是就返回-1,是的话,就返回索引class
class Solution { public int dominantIndex(int[] nums) { if (nums.length < 1) return -1; if (nums.length == 1) return 0; int max = 0; int sm = 0; int idx = 0; for (int i=0; i<nums.length; i++) { int n = nums[i]; if (n >= max && n >= sm) { sm = max; max = n; idx = i; } else if (n < max && n > sm) { sm = n; } } if (max >= sm * 2) { return idx; } else { return -1; } } }
在一个给定的数组nums中,老是存在一个最大元素 。
查找数组中的最大元素是否至少是数组中每一个其余数字的两倍。
若是是,则返回最大元素的索引,不然返回-1。
示例 1:
输入: nums = [3, 6, 1, 0]
输出: 1
解释: 6是最大的整数, 对于数组中的其余整数,
6大于数组中其余元素的两倍。6的索引是1, 因此咱们返回1.
示例 2:
输入: nums = [1, 2, 3, 4]
输出: -1
解释: 4没有超过3的两倍大, 因此咱们返回 -1.
提示:
nums 的长度范围在[1, 50].
每一个 nums[i] 的整数范围在 [0, 100].
PS:
找出最大的两个数,而后看看第一大的是否是第二大的的二倍多,不是就返回-1,是的话,就返回索引
class Solution { public int dominantIndex(int[] nums) { if (nums.length < 1) return -1; if (nums.length == 1) return 0; int max = 0; int sm = 0; int idx = 0; for (int i=0; i<nums.length; i++) { int n = nums[i]; if (n >= max && n >= sm) { sm = max; max = n; idx = i; } else if (n < max && n > sm) { sm = n; } } if (max >= sm * 2) { return idx; } else { return -1; } } }