数组747. 至少是其他数字两倍的最大数
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组747. 至少是其他数字两倍的最大数相关的知识,希望对你有一定的参考价值。
题目:
解答:
- 设置
one
、two
表示最大值和第二大值的数字; - 设置
oneIndex
表示最大值的索引; - 通过
for
遍历nums
; - 遍历
nums
过程中:如果这个数nums[i]
比最大值还大,那么替换掉two
、one
、oneIndex
;如果这个数nums[i]
比第二大值还大,那么替换掉第二大值two
。 - 判断
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. 至少是其他数字两倍的最大数的主要内容,如果未能解决你的问题,请参考以下文章
[LC]747题 Largest Number At Least Twice of Others (至少是其他数字两倍的最大数)