0
点赞
收藏
分享

微信扫一扫

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


​​https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others/​​

747. 至少是其他数字两倍的最大数_返回结果

思路1,先找最大的,然后找第二大的,
然后让二者比较,(三目运算符)
然后返回结果

747. 至少是其他数字两倍的最大数_运算符_02

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的值比较


举报

相关推荐

0 条评论