//**
* @param {string} text1
* @param {string} text2
* @return {number}
*/
var longestCommonSubsequence = function(text1,text2) {
let dp =new Array(text2.length+1)
dp.fill(0)
for(let i = 1; i <= text1.length; i++) {
// 这里pre相当于 dp[i - 1][j - 1]
let pre = dp[0];
for(let j = 1; j <= text2.length; j++) {
let cur=dp[j]
if(text1[i-1] === text2[j-1]) {
dp[j] = pre + 1;
} else {
dp[j] = Math.max(dp[j], dp[j-1])
}
pre = cur;
}
}
return dp[text2.length];
};
* 举例推导dp数组
/**
* @param {number[]} nums
* @return {number}
*/
var maxSubArray = function(nums) {
// 第27的时候做过(贪心做法)
// 数组长度,dp初始化
const len = nums.length;
let dp = new Array(len).fill(0);
dp[0] = nums[0];
// 最大值初始化为dp[0]
let max = dp[0];
for (let i = 1; i < len; i++) {
dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);
// 更新最大值
max = Math.max(max, dp[i]);
}
return max;
};

