在一個給定的數組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; } } }