编辑代码

// 定义景点和其对应的时间和评分
const attractions = [
    { name: '故宫', days: 1, rating: 7 },
    { name: '颐和园', days: 2, rating: 8 },
    { name: '长城', days: 3, rating: 9 },
    { name: '天坛', days: 1, rating: 6 }
];

function greedyOptimalAttractions(days) {
    // 按评分从高到低排序
    const sortedAttractions = attractions.sort((a, b) => b.rating - a.rating);
    
    let remainingDays = days;
    let selectedAttractions = [];

    for (let i = 0; i < sortedAttractions.length; i++) {
        const attraction = sortedAttractions[i];
        
        // 检查是否还有足够的时间去访问当前景点
        if (attraction.days <= remainingDays) {
            selectedAttractions.push(attraction.name);
            remainingDays -= attraction.days;
        }
    }

    return selectedAttractions;
}

// 假设旅行为4天
const daysAvailable = 4;
const result = greedyOptimalAttractions(daysAvailable);

console.log(`为了获得最大价值,你应该选择:${result.join(' 和 ')}。`);