求数组中的峰值

在一个由n个元素的整型数组中,找出符合以下两个条件的所有元素,要求时间复杂度为O(n);

  1. 该元素比它前面所有数都大
  2. 该元素比它后面所有数都小
class Solution{
public:
    vector<int> find(vector<int>& nums){
    vector<int> result;
    if(nums.empty())
        return result;
    const int length = nums.size();
    vector<int> helpmin(length);

    int minvalue = nums[length-1];
//注意此处循环是不能判断nums[i],因为找到是这个位置之后的最小值。。弱智吗
    for(int i = length-2; i>=0; --i){
        minvalue = minvalue<nums[i+1]?minvalue:nums[i+1];
        helpmin[i] = minvalue;
    }

    int maxvalue = nums[0];
    for(int i = 1; i< length; ++i){
        maxvalue = maxvalue>nums[i-1]?maxvalue:nums[i-1];
        if(nums[i]>maxvalue && nums[i]<helpmin[i])
            result.push_back(nums[i]);
    }

    return result;
}
};

即便是做过的题,也还是错了。。。果然还是太菜了嘛

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,287评论 2 13
  • 咕噜在雨天,不打伞,跑到东跑到西,和青蛙说说,跟蜗牛聊聊,再跳跳水坑,完全不理会妈妈的“阿嚏”怪兽提醒…小朋...
    魏霞阅读 247评论 0 0
  • 原创 2017-08-09 Jane 《侧耳倾听》是根据柊葵的同名漫画改编。 该片讲述了一个发生在1994年的故事...
    看美剧学英语阅读 719评论 0 1
  • 译者对原文中有些地方可能理解的不对,如果有朋友发现错误,希望可以告诉我,谢谢!原文地址:Github Gist译文...
    EarlGrey阅读 2,454评论 1 68

友情链接更多精彩内容