专栏首页刷题笔记【LeetCode】747. Largest Number At Least Twice of Others

【LeetCode】747. Largest Number At Least Twice of Others

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/103180783

In a given integer array nums, there is always exactly one largest element.

Find whether the largest element in the array is at least twice as much as every other number in the array.

If it is, return the index of the largest element, otherwise return -1.

Example 1:

Input: nums = [3, 6, 1, 0] Output: 1 Explanation: 6 is the largest integer, and for every other number in the array x, 6 is more than twice as big as x. The index of value 6 is 1, so we return 1.

Example 2:

Input: nums = [1, 2, 3, 4] Output: -1 Explanation: 4 isn't at least as big as twice the value of 3, so we return -1.

Note:

nums will have a length in the range [1, 50]. Every nums[i] will be an integer in the range [0, 99].

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

找出最大数和第二大数,直接比较条件即可,做好更新就行。

新来的比最大数大,他就是最大数,原来的最大数成了第二大数。

但是开始我丢掉了一种情况,就是新数比最大数小,但是比第二大数大,所以可以更新第二大数。

class Solution {
public:
    int dominantIndex(vector<int>& nums) {
        int maxid=0;
        int max=nums[0];
        int nextid=0;
        int next=0;
        for(int i=1;i<nums.size();i++){
            if(nums[i]>max){
                next=max;
                nextid=maxid;
                maxid=i;
                max=nums[i];
            }else if(nums[i]>next){
                nextid=i;
                next=nums[i];
            }
        }if(max>=2*next){
            return maxid;
        }return -1;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Leet Code】1. Two Sum

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • 【HBU数据结构月考】7-2 还原二叉树 (30 分) 输出高度

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • 1062 最简分数 (20 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • Codeforces Round #463 C.Permutation Cycle

    一、题目 http://codeforces.com/contest/932/problem/C 二、分析 (一)何谓Permutation Cycle 以例1...

    海天一树
  • 漫画:贼简单的题目,但百分之99%的人都不会

    今天是小浩算法“365刷题计划”第53天。为大家分享一道本应很简单的题目,但是却因增加了特殊条件,而大幅增加了难度。话不多说,直接看题。

    程序员小浩
  • 漫画:贼简单的题目,但百分之99%的人都不会

    为大家分享一道本应很简单的题目,但是却因增加了特殊条件,而大幅增加了难度。话不多说,直接看题。

    五分钟学算法
  • ZOJ 3326 An Awful Problem(模拟)

    An Awful Problem ---- Time Limit: 1 Second      Memory Limit: 32768 KB ---- In o...

    ShenduCC
  • 快速排序

    快速排序思想:如果要排数组p到r之间的一组数据,选择p到r之间任意一个一个数据作为pivot(分区点,这里选择的是s[r]作为pivot)。遍历p到r之间的数据...

    用户2937493
  • BZOJ3083: 遥远的国度(树链剖分)

    以下图片来自(https://blog.csdn.net/lcomyn/article/details/45718295)

    attack
  • 「c++小学期」实验题目及代码

    面向对象编程的C++,和平时做题用的C++还是有差距的。实验的题目都是小题目,就都做一下吧。

    饶文津

扫码关注云+社区

领取腾讯云代金券