1.在今日头条的编程题里遇到,起初的想法复杂了,使用分治算法做,但是感觉数据结构方面很难处理,不是线性时间,O(nlogn)。
2.在网上看到的方法使用了排序算法,虽然排序算法时间复杂度为o(nlogn),但是后面的生成步骤为O(n).
3.看图,极大值点有这些特点,前面的y值比后面的Y值大,所以将坐标按照x从小到大的顺序排列,若x相同,则把y值从小到大的顺序排列。
4.这样排好序的最后一个点肯定是极大值点,之后从后向前推,只有当前面点的y值大于当前极大值点的y值,就是极大值点。
5.从小到大输出,所以可以采用栈的结构,存储之前的极大值点。