程序员面试金典---22

跳水板

代码:

/**
 * @param {number} shorter
 * @param {number} longer
 * @param {number} k
 * @return {number[]}
 */
var divingBoard = function(shorter, longer, k) {
    if(k === 0) return []
    if(shorter === longer)return [k * shorter]
    let res = []
    for(let i = 0; i <= k; i++){
        res.push(longer * i + shorter * (k - i))
    }
    return res
};

连续数列

思路:

动态规划问题:

动态转换方程:

dp[i]=dp[i1]<0?nums[i]:dp[i1]+nums[i]

初始状态:dp[0] = nums[0]

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    dp = [nums[0]]
    for(let i = 1; i < nums.length; i++){
       dp[i] = dp[i - 1] < 0 ? nums[i] : dp[i - 1] + nums[i]
    }
    return Math.max(...dp)
};
posted @   楸枰~  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示