题目
747.至少是其他数字两倍的最大数
题目大意
给你一个整数数组 nums
,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1
。
样例
数据规模
思路
先遍历找到最大的数字,然后再次遍历,因为最大数是唯一的,所以遍历到非最大数的时候,判断它的两倍是否小于等于最大数,如果不是就返回-1。遍历结束还未返回-1,说明存在符合条件的最大数,返回最大数字的下标即可。
代码
class Solution {
public:
int dominantIndex(vector<int>& nums) {
int maxx=0,opt=0;
for(int i=0;i<nums.size();i++){
if(maxx<nums[i]){
maxx=nums[i];
opt=i;
}
}
for(auto it:nums){
if(it==maxx)continue;
if(it*2>maxx)return -1;
}
return opt;
}
};