您的位置:首页 > 产品设计 > UI/UE

[leetCode刷题笔记]300. Longest Increasing Subsequence

2017-04-28 08:00 323 查看
DP解决,用dp[len]表示遍历到的最大值,新的值如果大于这个值len++否则替换dp中的一个len不变

public class Solution {
public int lengthOfLIS(int[] nums) {
//use dp[len] to store the largest val.
int[] dp = new int[nums.length];
int len = 0;
for (int k : nums) {
int i = Arrays.binarySearch(dp, 0, len, k);
if (i < 0) i = -(i + 1);
dp[i] = k;
if (i == len) len++;
}
return len;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: