前端动态规划
没办法了,动态规划绕不过去了,那就搞懂吧。
HJ24 合唱队 - 中等
var num; while(num = parseInt(readline())){ const arr = readline().split(' ').slice(0,num).map(n => parseInt(n)); let dp1 = handle(arr); let dp2 = handle(arr.reverse()).reverse(); let max = 0; for (let i = 0; iHJ32 密码截取 - 简单,可以有其他方法
const line = readline(); const dp = []; let max = 0; for (let i = 0; i < line.length; i++){ dp[i] = 1; for (let j = 0; j <=i; j++){ let str = line.slice(j, i+1); if (check(str)) { dp[i] = Math.max(dp[i], str.length); max = Math.max(max, dp[i]); } } } console.log(max) function check(str) { let i,j; if (str.length %2 ===0) { i = str.length/2-1; j = str.length/2; } else { i = (str.length-1)/2; j = i; } while (i >=0 && jHJ75 公共子串计算 - 简单,可以有其他方法
const line = readline(); const line2 = readline(); let short, long; if (line.length >= line2.length) { short = line2; long = line; } else { short = line; long = line2; } let dp = []; let max = 0; for (let i = 0; i < short.length; i++){ dp[i] = 0; for (let j = 0; j <= i; j++) { let str = short.slice(j,i+1); if (long.indexOf(str) > -1) { dp[i] = Math.max(str.length, dp[i]); max = Math.max(max, dp[i]) } } } console.log(max);HJ52 计算字符串的编辑距离 - 难