力扣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;
    }
};
相关推荐
菜菜的顾清寒1 分钟前
力扣HOT100(52)动态规划 - 最长递增子序列
算法·leetcode·动态规划
WBluuue7 分钟前
数据结构与算法:树上启发式合并
数据结构·c++·算法·启发式算法
酉鬼女又兒14 分钟前
零基础入门计算机网络物理层:核心任务、四大关键特性与全类型传输媒体(双绞线/同轴电缆/光纤/微波/红外线/可见光)完整详解
网络·网络协议·计算机网络·职场和发展·求职招聘
x_xbx24 分钟前
LeetCode:20. 有效的括号
算法·leetcode·职场和发展
计算机安禾25 分钟前
【算法设计与分析】第40篇:空间数据结构:KD树与四叉树的查询分析
数据结构·算法
江屿风37 分钟前
C++图的两种构建算法流食般投喂-竞赛编
开发语言·c++·笔记·算法·图论
m沐沐40 分钟前
【机器学习】信用卡欺诈检测实战:逻辑回归 + 过采样
人工智能·算法·机器学习·pycharm·逻辑回归
代码中介商1 小时前
图论入门:从基础到遍历算法
数据结构·算法·图论
csdn_aspnet1 小时前
Python 霍尔分区算法(Hoare‘s Partition Algorithm)
开发语言·python·算法
8Qi81 小时前
LeetCode 295:数据流的中位数(Median Finder)—— Java 题解 ✅
java·算法·leetcode·优先队列··中位数