zoukankan      html  css  js  c++  java
  • leetcode刷题笔记5630题 删除子数组的最大得分

    leetcode刷题笔记5630题 删除子数组的最大得分

    地址:5630. 删除子数组的最大得分

    问题描述:

    给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组。删除子数组的 得分 就是子数组各元素之 和 。

    返回 只删除一个 子数组可获得的 最大得分 。

    如果数组 b 是数组 a 的一个连续子序列,即如果它等于 a[l],a[l+1],...,a[r] ,那么它就是 a 的一个子数组。

    示例 1:

    输入:nums = [4,2,4,5,6]
    输出:17
    解释:最优子数组是 [2,4,5,6]
    示例 2:

    输入:nums = [5,2,1,2,5,2,1,2,5]
    输出:8
    解释:最优子数组是 [5,2,1] 或 [1,2,5]

    提示:

    1 <= nums.length <= 105
    1 <= nums[i] <= 104

    
    
    func maximumUniqueSubarray(nums []int) int {
        length := len(nums)
        res := 0
        hp := make(map[int]int)
    
        for left, right, s := 0, 0, 0; right < length; right ++ {
            x := nums[right]
            hp[x] += 1
            s += x
    
            for (hp[x] > 1) {
                hp[nums[left]] -= 1
                s -= nums[left]
                left += 1
            }
    
            res = max(res, s)
        }
    
        return res
    }
    
    func max(a, b int) int {
        if a > b {
            return a
        } else {
            return b
        }
    }
    
  • 相关阅读:
    微信app支付,服务端对接
    git 忽略文件权限
    linux 终端全局代理设置
    centos 谷歌浏览器安装
    putty快速设置本地代理
    centos rpmforge repo
    mysql 同步
    apscheduler 排程
    tornado 排程
    gedit 格式化json
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/14165972.html
Copyright © 2011-2022 走看看