zoukankan      html  css  js  c++  java
  • #Leetcode# 162. Find Peak Element

    https://leetcode.com/problems/find-peak-element/

    A peak element is an element that is greater than its neighbors.

    Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index.

    The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

    You may imagine that nums[-1] = nums[n] = -∞.

    Example 1:

    Input: nums = [1,2,3,1]
    Output: 2
    Explanation: 3 is a peak element and your function should return the index number 2.
    Example 2:

    Input: nums = [1,2,1,3,5,6,4]
    Output: 1 or 5
    Explanation: Your function can return either index number 1 where the peak element is 2,
    or index number 5 where the peak element is 6.
    Note:

    Your solution should be in logarithmic complexity.

    代码 1:

    class Solution {
    public:
        int findPeakElement(vector<int>& nums) {
            int n = nums.size();
            if(n == 1) return 0;
            if(n == 2) {
                if(nums[1] > nums[0]) return 1;
                else return 0;
            }
            vector<int> ans;
            int maxx = nums[0];
            for(int i = 1; i < n - 1; i ++) {
                int temp = i;
                //if(nums[temp] < maxx) return 0;
                while(nums[temp] > maxx && temp < n) {
                    maxx = nums[temp];
                    temp ++;
                }
                return temp - 1;
            }
            return -1;
        }
    };
    

      写的乱糟糟的一个代码 我可能是猪脑子吧 只要找出爱第一个后一个比前一个小的然后返回就好了 否则就是一个排好序的数组返回最后一个的下标是最大值就好了 

    代码 2:

    class Solution {
    public:
        int findPeakElement(vector<int>& nums) {
            for (int i = 1; i < nums.size(); ++i) {
                if (nums[i] < nums[i - 1]) return i - 1;
            }
            return nums.size() - 1;
        }
    };
    

      

  • 相关阅读:
    C++11:02decltype关键字
    git 源操作,分支操作
    git操作命令以及优点
    drf--序列化组件
    项目相关 --知识点
    vue框架:
    drf --解析器,异常模块,响应模块 序列化组件
    drf框架相关
    中间键 csrf跨站请求伪造 装饰器相关 auth模块
    多对多表的创建方式 forms组件 session与cookie
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10035366.html
Copyright © 2011-2022 走看看