最长上升子序列模板(效率n2和nlogn)
来源:互联网 发布:btsow新域名 编辑:程序博客网 时间:2024/06/16 14:56
效率n*n:
a[]存放需要处理的数,n是a[]长度-1
效率nlogn
import java.util.Scanner;
public class Main {
//arr[]存放数
public static void main(String[] args) {
int len, index;
int[] dp = null, arr = null;
Scanner in= new Scanner(System.in);
while (in.hasNext()) {
int T = in.nextInt();
for (int k = 0; k < T; k++) {
len = 0;
int n = in.nextInt();
dp = new int[n + 1];
arr = new int[n+ 1];
for (int j = 1; j <= n; j++) {
arr[j] = in.nextInt();
}
dp[++len] = arr[1];
for (int j = 2; j <= n; j++) {
if (arr[j] > dp[len]) {
dp[++len] = arr[j];
}
index = search(dp, arr[j], 1, len);
dp[index] = arr[j];
}
System.out.println(len);
}
}
}
private static int search(int[] dp, int value, int start, int end) {
int mid;
while (start < end) {
mid = (start + end) / 2;
if (dp[mid] > value) {
end = mid;
} else {
start = mid + 1;
}
}
return start;
}
}
- 最长上升子序列模板(效率n2和nlogn)
- 最长上升子序列----nlogn算法-模板
- 最长上升子序列nlogn 模板
- 【模板】最长上升子序列 O(nlogn)
- 最长上升子序列 (二分 nlogn)
- 最长上升子序列详解(nlogn)
- 最长上升子序列(nlogn算法)
- 最长递增子序列O(nlogn)和O(n2)
- 最长上升子序列 nlogn
- nlogn 最长上升子序列
- 最长上升子序列(nlogn)
- Nlogn最长上升子序列
- 最长上升子序列O(nlogn)算法模板
- 最长上升子序列n*n和nlogn 算法
- 最长上升子序列(LIS)nlogn算法(转)
- 最长上升子序列的nlogn算法实现(用栈)
- 最长上升子序列的O(nlogn)搞法
- nlogn的LIS(最长上升子序列)算法讲解
- bind函数
- .net 面试题
- ContentProvider 跨进程调用
- HDU 4289 Control(最大流+拆点)
- java面试题
- 最长上升子序列模板(效率n2和nlogn)
- HDU 3065 病毒侵袭持续中 (AC自动机)
- 正则表达式(4)之内置属性
- FM0
- js中获取中文相应gbk编码
- Xshell连接不到Linux
- SqlServer高效汉字转拼音的存储过程
- sscanf,sscanf_s及其相关用法
- 【区间DP】POJ_3186_Treats for the Cows