快乐水题747. 至少是其他数字两倍的最大数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快乐水题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. 至少是其他数字两倍的最大数的主要内容,如果未能解决你的问题,请参考以下文章