码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode:至少是其他数字两倍的最大数

时间:2020-04-17 17:15:56      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:public   code   int   大小   size   思路   关系   元素   return   

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

要求

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:至少是其他数字两倍的最大数

标签:public   code   int   大小   size   思路   关系   元素   return   

原文地址:https://www.cnblogs.com/breezy-ye/p/12721143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!