快乐水题747. 至少是其他数字两倍的最大数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快乐水题747. 至少是其他数字两倍的最大数相关的知识,希望对你有一定的参考价值。


原题:

​力扣链接:747. 至少是其他数字两倍的最大数

题目简述:

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。

请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。

解题思路

1.首先排序,找出最大的数;
2.然后其他数与最大数的一半比大小,如果有比最大数的一半大的则返回-1;
3.找出最大数的下标,输出下标;
4.处理只有一个数的情况,返回0;
5.over;

C++代码:

class Solution 
public:
int dominantIndex(vector<int>& nums)
vector<int> vec(nums);

sort(vec.begin(),vec.end());

int n = nums.size();


if(n == 1)

return 0;


cout << vec[n-1];

for(int i = 0;i < n -1;i++)

if( vec[i] > ((float)vec[n-1]/(float)2))

return -1;




for(int i = 0;i < n;i++)

if(nums[i] == vec[n-1])

return i;




return -1;

;

力扣结果展示:

【快乐水题】747.


以上是关于快乐水题747. 至少是其他数字两倍的最大数的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

leetcode 1月13日每日一题 747. 至少是其他数字两倍的最大数