力扣1658.将x减到0的最小操作数

力扣1658.将x减到0的最小操作数

题目

题目解析及思路

题目要求每次操作删除最左或最右的元素 ,并从x中减去,返回当x = 0 时的最小操作数

  • 正难则反:求值为sum - x的区间

代码

cpp 复制代码
class Solution {
public:
    int minOperations(vector<int>& nums, int x) {
        int res=1e5+10,n = nums.size();
        int sum = accumulate(nums.begin(),nums.end(),0);
        int ans = 0;
        int k = sum - x;
        if(k <0) return -1;
        for(int i=0,j=0;i<n;i++)
        {
            ans += nums[i];
            while(ans > k) ans -= nums[j++];
            if(ans == k) res = min(res,n- (i-j+1));
        }
        if(res == 1e5 + 10) res = -1;
        return res;
    }
};
相关推荐
唐叔在学习6 分钟前
【唐叔学算法】第18天:解密选择排序的双重魅力-直接选择排序与堆排序的Java实现及性能剖析
数据结构·算法·排序算法
Kenneth風车38 分钟前
【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11
算法·机器学习·分类
最后一个bug42 分钟前
rt-linux中使用mlockall与free的差异
linux·c语言·arm开发·单片机·嵌入式硬件·算法
木向1 小时前
leetcode22:括号问题
开发语言·c++·leetcode
蹉跎x2 小时前
力扣1358. 包含所有三种字符的子字符串数目
数据结构·算法·leetcode·职场和发展
rainoway2 小时前
CRDT宝典 - yata算法
前端·分布式·算法
巫师不要去魔法部乱说3 小时前
PyCharm专项训练4 最小生成树算法
算法·pycharm
IT猿手3 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解GLSMOP1-GLSMOP9及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·算法·机器学习·matlab·强化学习
阿七想学习3 小时前
数据结构《排序》
java·数据结构·学习·算法·排序算法
王老师青少年编程3 小时前
gesp(二级)(12)洛谷:B3955:[GESP202403 二级] 小杨的日字矩阵
c++·算法·矩阵·gesp·csp·信奥赛