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;
    }
};
相关推荐
下午写HelloWorld2 小时前
【概念与应用】轻量级加密算法LEA、动态脱敏算法DDA、零知识证明ZKP和优化协同交互协议OCIP
算法·区块链·密码学·安全架构·零知识证明
飞舞哲2 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
有点。2 小时前
C++(贪心算法二)
开发语言·c++·贪心算法
有点。2 小时前
C++贪心算法一(练习题)
开发语言·c++·贪心算法
Coder-magician2 小时前
《代码随想录》刷题打卡day12:二叉树part02
数据结构·c++·算法
海梨花2 小时前
字节面试高频算法题
java·算法·面试·职场和发展
aqiu1111112 小时前
python02
算法
瓦特what?2 小时前
位运算核心技巧与应用
java·jvm·算法
无限码力2 小时前
阿里算法岗 0530笔试真题 - 荆棘林的最优砍断计划
算法·阿里笔试真题·阿里机试真题·阿里算法岗笔试真题·阿里巴巴笔试真题