• leetcode每日一题(2020-06-17):1014. 最佳观光组合


    给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。
    一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。
    返回一对观光景点能取得的最高分。

    今日学习:
    1.动态规划!想到了用动态规划但是没想明白该怎么用!

    题解1:

    var maxScoreSightseeingPair = function(A) {
        //暴力法[妥妥的超时]
        const res = []
        for(let i = 0; i < A.length; i++) {
            for(let j = i + 1; j < A.length; j++) {
                res.push(A[i] + A[j] + i - j)
            }
        }
        return Math.max(...res)
    };
    

    题解2:其实对于每一个 j 来说,A[j] - j 是固定的,所以只需要找到最大的A[i] + i 就是当前 j 的最大结果,换成动态规划的话,就是dp[i]就是 i 之前最大的A[i] + i

    // 包括dp[i]和常数个变量【因为和位置无关】
    const maxScoreSightseeingPair = (A) => {
        // const dp = new Array(A.length)
        // dp[0] = 0
        let res = prev = 0
        for (let i = 1; i < A.length; i++) {
            // dp[i] = Math.max(dp[i - 1], A[i - 1] + i - 1)
            prev = Math.max(prev, A[i - 1] + i - 1)
            res = Math.max(res, prev + A[i] - i)
        }
        return res
    }
    
  • 相关阅读:
    实用 zsh 插件
    laravel 实用扩展包
    laravel Collection mapToDictionary 例子
    laravel mapSpread 例子
    mac 命令行大杂烩
    iview table中 on-view事件点击无效
    github网站打不开了
    iview table 表头样式修改
    $attrs is readonly
    iview中modal如何修改标题颜色
  • 原文地址:https://www.cnblogs.com/autumn-starrysky/p/13151407.html
Copyright © 2020-2023  润新知