力扣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;
    }
};
相关推荐
君义_noip6 分钟前
洛谷 P4777 【模板】扩展中国剩余定理(EXCRT)
算法·数论·信息学奥赛·csp-s
天赐学c语言6 分钟前
12.14 - 搜索旋转排序数组 && 判断两个结构体是否相等
数据结构·c++·算法·leecode
1024肥宅21 分钟前
JavaScript 性能与优化:数据结构和算法
前端·数据结构·算法
kaikaile199535 分钟前
MATLAB 灰度图像的二维傅里叶变换
算法·计算机视觉·matlab
仰泳的熊猫41 分钟前
1112 Stucked Keyboard
数据结构·c++·算法·pat考试
roman_日积跬步-终至千里1 小时前
【计算机算法与设计(14)】例题五:最小生成树:Prim算法详细解释:π的含义、更新逻辑和选点原因
算法
让学习成为一种生活方式1 小时前
压缩文件夹下下所有文件成压缩包tar.gz--随笔016
算法
嗷嗷哦润橘_1 小时前
AI Agent学习:MetaGPT项目之RAG
人工智能·python·学习·算法·deepseek
不忘不弃1 小时前
指针元素的使用
算法
he___H1 小时前
滑动窗口一题
java·数据结构·算法·滑动窗口