300.最长递增子序列
解题思路
代码实现
var lengthOfLIS = function(nums) {
var dp = new Array(nums.length).fill(1);
dp[0] =1;
for(let i=1;i<nums.length;i++){
for(let j=0;j<i;j++){
if(nums[j] <nums[i]){
dp[i] = Math.max(dp[j] +1 ,dp[i]);
}
}
}
var result=1;
for(let i=0;i<nums.length;i++){
result = Math.max(result,dp[i]);
}
return result;
};
674. 最长连续递增序列
解题思路
代码实现
/**
* @param {number[]} nums
* @return {number}
*/
var findLengthOfLCIS = function(nums) {
var dp=new Array(nums.length).fill(1);
var start =0;
for(let i = 0; i < nums.length - 1; i++) {
if(nums[i+1] > nums[i]) {
dp[i+1] = dp[i]+ 1;
}
}
var result =1;
for(let i=0;i<nums.length;i++){
result = Math.max(result,dp[i]);
}
return result;
};
718. 最长重复子数组
解题思路
代码实现
var findLength = function(nums1, nums2) {
var dp = new Array(nums1.length+1).fill(0).map(()=>new Array(nums2.length+1).fill(0));
var result =0;
for(let i=1;i<=nums1.length;i++){
for(let 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] >result){
result = dp[i][j]
}
}
}
}
return result;
};