标签:info css while 遍历 problem question 解法 最大 style
第一种想到O(n)解法,直接for循环遍历求出最大值的下标输出即可:
class Solution { public: int findPeakElement(vector<int>& nums) { if(nums.size()<=1) return 0; int a=nums[0],ans=0; for(int i=1;i<nums.size();i++) { if(nums[i]>a) { ans=i; a=nums[i]; } } return ans; } };
第二种想到O(longn)的,二分找最大值,不断缩小范围:
class Solution { public: int findPeakElement(vector<int>& nums) { if(nums.size()<=1) return 0; int left=0,right=nums.size()-1; while(left<right) { int mid=(left+right)/2; if(nums[mid]>nums[mid+1]) right=mid; else left=mid+1; } return left; } };
标签:info css while 遍历 problem question 解法 最大 style
原文地址:https://www.cnblogs.com/Vampire6/p/13131152.html