n=100W常规遍历,那么每次都要遍历一次,那么复杂度达到O(n2)直接超时,于是我们进行优化。
假设序列为 3 1 2 5 4
遍历到1时,那么之后不论什么情况,能力值最小的特工必定是1,而不可能是3,那么3就可以丢掉了。
于是我们猜想用一个递增序列储存储存下可能是答案的特工。不可能是答案的丢掉。那么我们就相当了栈。然后看一段推到过程。序列表示当前栈元素。
结论:1,当栈空,答案为-1
2,当新元素大于栈顶,答案就是栈顶元素的编号。
3,新元素小于栈顶,那么意味着栈顶已经失去作用了。弹出。继续比较。之后的结果只有两个,结论1和结论2.
用结构储存序列,下标,答案。value代表能力值,num代表数字
核心代码。
原文:http://www.cnblogs.com/Q1143316492/p/6358125.html