300.最长递增子序列
class Solution {
public int lengthOfLIS(int[] nums) {
int[] dp =new int[nums.length];
int res = 0;
Arrays.fill(dp, 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);
}
}
res = Math.max(res, dp[i]);
}
return res;
}
}
674. 最长连续递增序列
class Solution {
public int findLengthOfLCIS(int[] nums) {
int tmp=1;
int res=1;
for(int i=1;i<nums.length;i++){
if(nums[i]>nums[i-1]){
tmp++;
}
else{
res = Math.max(res, tmp);
tmp=1;
}
}
return Math.max(res, tmp);
}
}
718. 最长重复子数组
class Solution {
public int findLength(int[] nums1, int[] nums2) {
int[][] dp= new int[nums1.length+1][nums2.length+1];
int res=0;
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;
}
if(dp[i][j]>res) res=dp[i][j];
}
}
return res;
}
}