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;
    }
};
相关推荐
dialect_3 小时前
KMP算法
开发语言·c++·算法
reikocao3 小时前
卡尔曼滤波的动态机制:P如何改变融合权重
算法
漂流瓶jz4 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
吞下星星的少年·-·5 小时前
Div.2 CF 1130B题(构造,贪心)
算法·贪心·构造
文丑颜不良啊5 小时前
LeetCode1481~1500题目解析
java·leetcode
ShineWinsu5 小时前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
文丑颜不良啊5 小时前
LeetCode1381~1400题目解析
java·leetcode
傲世仙尊5 小时前
多态-虚表才活到运行期符号表早已消失
c++
chenbingjie_c6 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
是main不是漫6 小时前
【双指针——移动零】数组划分类题目的入门基石
c++·算法