zoukankan      html  css  js  c++  java
  • LeetCode747 至少是其他数字两倍的最大数

    在一个给定的数组nums中,总是存在一个最大元素 。

    查找数组中的最大元素是否至少是数组中每个其他数字的两倍。

    如果是,则返回最大元素的索引,否则返回-1。

    示例 1:

    输入: nums = [3, 6, 1, 0]
    输出: 1
    解释: 6是最大的整数, 对于数组中的其他整数,
    6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.
    

     

    示例 2:

    输入: nums = [1, 2, 3, 4]
    输出: -1
    解释: 4没有超过3的两倍大, 所以我们返回 -1.






    //章节 - 数组和字符串    
    //一、数组简介
    //2.至少是其他数字两倍的最大数
    /*
      算法思想:代码注释即可,注意审题!
    */
    //算法实现:
    class Solution {
    public:
        int dominantIndex(vector<int>& nums) {
            int max=nums[0],flag=0;
            for(int i=1;i<nums.size();++i){ //求最大值,保存最大值索引
                if(nums[i]>max){
                    flag=i;
                    max=nums[i];
                }
            }
            int f=1;
            for(int i=0;i<nums.size();++i){
                if(nums[i]!=max && max < 2*nums[i] ){   //这是要注意,比较时要除去本身
                    f=0;
                    break;
                }                
            }
            if(f)    //注意审题,至少是数组中每个其他数字的两倍。
                return flag;
            else
                return -1;
        }
    };
  • 相关阅读:
    vim中自动添加文件的作者、时间信息、版本等
    linux shell ipaddress
    java ant学习
    ganglia rpm安装
    深入分析 Java 中的中文编码问题
    javaIO调优
    超强的vim设置
    linux中core文件的生成和配置
    C和C++ 语言动态内存分配
    Linux的常用命令
  • 原文地址:https://www.cnblogs.com/parzulpan/p/10061301.html
Copyright © 2011-2022 走看看