LeetCode:至少是其他数字两倍的最大数
Posted Breezy-ye
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:至少是其他数字两倍的最大数相关的知识,希望对你有一定的参考价值。
至少是其他数字两倍的最大数
要求
1.在一个给定的数组nums中,总是存在一个最大元素 。
2.查找数组中的最大元素是否至少是数组中每个其他数字的两倍。
3.如果是,则返回最大元素的索引,否则返回-1。
思路
按顺序查找元素,比较数据大小,找出最大值与倒数第二大值,最后比较两值是否为两倍数关系。
示例
class Solution {
public:
int dominantIndex(vector<int>& nums) {
if(nums.size()==1){
return 0;
}
int num_max2=-1;
auto it_max=nums.begin();
for(auto it=nums.begin()+1;it!=nums.end();it++){
if(*it>num_max2){
num_max2=*it;
if(*it>*it_max){
num_max2=*it_max;
it_max=it;
}
}
}
return (*it_max>=(2*num_max2))?(it_max-nums.begin()):-1;
}
};
以上是关于LeetCode:至少是其他数字两倍的最大数的主要内容,如果未能解决你的问题,请参考以下文章
《LeetCode之每日一题》:265.至少是其他数字两倍的最大数
leetcode 1月13日每日一题 747. 至少是其他数字两倍的最大数
leetcode 1月13日每日一题 747. 至少是其他数字两倍的最大数