zoukankan      html  css  js  c++  java
  • LeetCode 峰值

    162. 寻找峰值

    题目描述:

    解法一(迭代):

    class Solution {
    public:
        int findPeakElement(vector<int>& nums) {
            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;
        }
    };

    解法二(递归):

    class Solution {
    public:
        int findPeakElement(vector<int>& nums) {
            //if(nums.size()<2) return nums
            return helper(nums,0,nums.size()-1);
        }
        int helper(vector<int>& nums ,int left, int right){
            if(left==right) return left;
            int mid=(left+right)/2;
            if(nums[mid]>nums[mid+1]) return helper(nums,left,mid);
            else return helper(nums,mid+1,right);
        }
    };

    852. 山脉数组的峰顶索引

    题目描述:

    解法一:

    class Solution {
    public:
        int peakIndexInMountainArray(vector<int>& A) {
            return max_element(A.begin(),A.end())-A.begin();
        }
    };

    解法二:

    class Solution {
    public:
        int peakIndexInMountainArray(vector<int>& A) {
            int left=0,right=A.size()-1;
            while(left<right){
                int mid=(left+right)/2;
                if(A[mid]<A[mid+1]) left=mid+1;
                else right=mid;
            }
            return left;
        }
    };
  • 相关阅读:
    LeetCode#191 Number of 1 Bits
    敏捷编程
    过程模型
    磁盘阵列
    RAM和ROM
    cache
    局部性原理
    栈的应用(一)——括号的匹配
    猫狗收养问题
    全局变量和局部变量
  • 原文地址:https://www.cnblogs.com/oneDongHua/p/14263990.html
Copyright © 2011-2022 走看看