需求:
判断一个整数列表,是否去掉其中某一个数据后,列表呈升序排列。
要求:
数据区间为:-100000<=num<=100000,且列表长度为:2<=len<=100000
遇到的问题:
在数据达到:5000的时候提示运行时间过长
请问如何优化一下?
https://blog.csdn.net/u010159842/article/details/54573102/
不知道对不对
可以用前一项减后一项,看差分有几个不是升序的地方
如果有多个不是升序的直接返回否
如果只有一个升序的,可以去除不是升序的点或者不是升序之后的一个点,在用相同方法判断是否变为升序
其中有一个删去可以使序列变为升序那就是可以,如果不行就不行
二楼想法很正确,可以考虑若0-i位置都是升序,而i - i+1为降序,则该位置的其中一个数值必须被删掉,若再碰到这种情况则可知无法找到合适的删除策略。
可以进一步考虑删除k位求升序的情况,不过这种情况下之前的思路可能就不适用了,可能需要用到最大不下降子序列方面的算法。另外希望楼主提供一下刷题网址和题号~~