数组排序求解,要求中间大两边递减,但是里面的元素位置不能变动,不按规则排的数剔除掉

并且还要求尽可能少的剔除数据,扩大结果的个数
比如数组[10,20,5,80,100,3,5,9,500]
满足的情况是[10,20,5],[5,80,100,3],[3,5,9,500]
求解
提供思路就行了

阅读 3.5k
2 个回答

咦, 不就是找到距离最远的两个相邻谷值(比相邻数都小的数)?

对整个数列正反求两次最长上升子序列。(时间复杂度:O(logn))。
得到以每个位置结尾的最长上升子序列(正反)的值。然后求和找出最大值就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题