818. 赛车
var racecar = function(target) {
let dp = [];
for(let i = 1; i <= target; i++) {
dp[i] = Number.MAX_VALUE;
let j = 1, cnt1 = 1;
for (; j < i; j = (1 << ++cnt1) - 1) {
for (let k = 0, cnt2 = 0; k < j; k = (1 << ++cnt2) - 1) {
dp[i] = Math.min(dp[i], cnt1 + 1 + cnt2 + 1 + dp[i - (j - k)]);
}
}
dp[i] = Math.min(dp[i], cnt1 + (i == j ? 0 : 1 + dp[j - i]))
}
return dp[target];
};
最后更新于