码迷,mamicode.com
首页 > 编程语言 > 详细

【数组】747. 至少是其他数字两倍的最大数

时间:2020-05-04 19:17:28      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:替换   pre   mic   cto   style   mamicode   遍历   str   alt   

题目:

技术图片

 

 

解答:

  1. 设置 onetwo 表示最大值和第二大值的数字;
  2. 设置 oneIndex 表示最大值的索引;
  3. 通过 for 遍历 nums
  4. 遍历 nums 过程中:如果这个数 nums[i] 比最大值还大,那么替换掉 twooneoneIndex;如果这个数 nums[i] 比第二大值还大,那么替换掉第二大值 two
  5. 判断 one 是否大于或者等于 two * 2,返回 oneIndex 或者 -1
 1 class Solution {
 2 public:
 3     int dominantIndex(vector<int>& nums) 
 4     {
 5         int one = 0;
 6         int oneIndex = 0;
 7         int two = 0;
 8   
 9         for (int i = 0; i < nums.size(); i++) 
10         {
11             if (nums[i] > one) 
12             {
13                 two = one;
14                 one = nums[i];
15                 oneIndex = i;
16             } else if (nums[i] > two)
17             {
18                 two = nums[i];
19             }
20         }
21         
22         return one >= two * 2 ? oneIndex : -1;
23     }
24 };

 

【数组】747. 至少是其他数字两倍的最大数

标签:替换   pre   mic   cto   style   mamicode   遍历   str   alt   

原文地址:https://www.cnblogs.com/ocpc/p/12827633.html

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