300.最长递增子序列
题目链接:300. 最长递增子序列 - 力扣(LeetCode)
class Solution {
public int lengthOfLIS(int[] nums) {
int[] dp = new int[nums.length];
for(int i = 0; i < nums.length; ++i) {
dp[i] = 1;
}
for(int i = 0; i < nums.length; ++i) {
for(int j = 0; j < i; ++j) {
if(nums[j] < nums[i]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
}
int ret = 0;
for(int i = 0; i < nums.length; ++i) {
if(dp[i] > ret) {
ret = dp[i];
}
}
return ret;
}
}
674. 最长连续递增序列
题目链接:674. 最长连续递增序列 - 力扣(LeetCode)
class Solution {
public int findLengthOfLCIS(int[] nums) {
int max = 1, len = 1;
for(int i = 1; i < nums.length; ++i) {
if(nums[i] > nums[i-1]) {
++len;
}else {
max = len > max ? len : max;
len = 1;
}
}
if(len > max) {
return len;
}
return max;
}
}
718. 最长重复子数组
题目链接:718. 最长重复子数组 - 力扣(LeetCode)
class Solution {
public int findLength(int[] nums1, int[] nums2) {
int ret = 0;
int[][] dp = new int[nums1.length + 1][nums2.length + 1];
for(int i = 1; i <= nums1.length; ++i) {
for(int j = 1; j <= nums2.length; ++j) {
if(nums1[i-1] == nums2[j-1]) {
dp[i][j] = dp[i-1][j-1] + 1;
ret = ret > dp[i][j] ? ret : dp[i][j];
}
}
}
return ret;
}
}