https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others/
思路1,先找最大的,然后找第二大的,
然后让二者比较,(三目运算符)
然后返回结果
class Solution {
public int dominantIndex(int[] nums) {
//最大值,索引,较大值
int max = 0, idx = 0, less = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {//寻找最大值
less = max;
max = nums[i];
idx = i;
} else if (nums[i] > less && nums[i] != max) { //寻找第二大值
less = nums[i];
}
}
return max >= (less * 2) ? idx : -1;
}
}
class Solution {
public int dominantIndex(int[] nums) {
//1,先找到最大的数,只是为了找最大,所以不一定非要用排序
//2,然后找到第二大的数
//3,然后max比较第二大*2
int max=0,less=0,index=0;
//记录max和less
//这个用来进行首先判断一下,有无都可
if(nums.length==1) return 0;
for(int i=0;i<nums.length;i++){
if(nums[i]>max){
less =max;
max=nums[i];
index=i;
}else if(nums[i]>less&&nums[i]!=max){
//寻找第二大数
less = nums[i];
}
}
return max>=(less*2)?index:-1;
}
}
思路2,两个for循环,先遍历找最大的,然后将最大值和每个元素*2的值比较