最长递增子序列(不一定连续),请看这里。
给定一个长度为n的数组,求它的最长连续递增子序列。
思路:
用bruteforce的方法,复杂度是O(n).
可是我们可以观察到,如果A[i-1]>A[i],而且到目前为止最长递增子序列长度是L,那么我们可以从A[i+L]向A[i]的方向查找,看是否是递减数列,如果不是那么我们就可以停止查找。
这个方法的最差复杂度仍是O(n),但是最好情况下复杂度是O(n/L)
最长递增子序列(不一定连续),请看这里。
给定一个长度为n的数组,求它的最长连续递增子序列。
思路:
用bruteforce的方法,复杂度是O(n).
可是我们可以观察到,如果A[i-1]>A[i],而且到目前为止最长递增子序列长度是L,那么我们可以从A[i+L]向A[i]的方向查找,看是否是递减数列,如果不是那么我们就可以停止查找。
这个方法的最差复杂度仍是O(n),但是最好情况下复杂度是O(n/L)