【快乐水题】747. 至少是其他数字两倍的最大数
生活随笔
收集整理的这篇文章主要介绍了
【快乐水题】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;} };力扣结果展示:
与50位技术专家面对面20年技术见证,附赠技术全景图总结
以上是生活随笔为你收集整理的【快乐水题】747. 至少是其他数字两倍的最大数的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 《2022博客之星拉票专用帖》
- 下一篇: 为什么长视频没有强算法推荐的产品