leetcode3689最大子数组总值I

一、问题描述

二、解题思路

由于本题的子数组可以重复选择,所以,可以使用贪心算法来解决这个问题。遍历数组,找出最大值MAX和最小值MIN,结果即为k*(MAX-MIN),最后计算返回即可。

三、代码实现

cpp 复制代码
class Solution {
public:
    long long maxTotalValue(vector<int>& nums, int k) {
        //贪心:找到(最大元素-最小元素)*k
        long long ret=0;
        int MIN=nums[0],MAX=nums[0];
        for(auto x:nums){
            MIN=min(x,MIN);
            MAX=max(x,MAX);
        }
        //防止溢出
        ret+=(long long)k*(MAX-MIN);
        return ret;
    }
};
相关推荐
晴天的雨.99211 分钟前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
aramae7 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
荆棘鸟智能7 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
知识分享小能手10 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_1998868711 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
INGNIGHT11 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
2401_8390805412 小时前
C++常见八股
数据结构·c++·算法
qq_1998868712 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力
青山是哪个青山12 小时前
LeetCode 188:买卖股票的最佳时机 IV
算法
mikuyyds12 小时前
geo-toolbox 插件算法解析:RUSLE 与 MUSLE 的工程化落地
算法·rust·gis