前端动态规划
没办法了,动态规划绕不过去了,那就搞懂吧。
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; i
HJ32 密码截取 - 简单,可以有其他方法
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 && j
HJ75 公共子串计算 - 简单,可以有其他方法
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 计算字符串的编辑距离 - 难