编辑代码

function maximizeValue(days) {
    const attractions = [
        { name: '故宫', time: 1, score: 7 },
        { name: '颐和园', time: 2, score: 8 },
        { name: '长城', time: 3, score: 9 },
        { name: '天坛', time: 1, score: 6 }
    ];

    const n = attractions.length;
    const dp = Array.from({ length: days + 1 }, () => 0);

    for (let i = 0; i < n; i++) {
        for (let j = days; j >= attractions[i].time; j--) {
            dp[j] = Math.max(dp[j], dp[j - attractions[i].time] + attractions[i].score);
        }
    }

    return dp[days];
}

const daysAvailable = 4;
const maxScore = maximizeValue(daysAvailable);

console.log(`在${daysAvailable}天内,能够获得的最大评分为:${maxScore}`);