力扣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 分钟前
C++ STL | vector
开发语言·c++·算法
云里雾里!5 分钟前
力扣 268. 缺失数字 ✅ 【位运算(异或)最优解法】深度解析
算法·leetcode
kaikaile199512 分钟前
ISODATA聚类方法在MATLAB中的实现指南
算法·matlab·聚类
梭七y15 分钟前
【力扣hot100题】(122)回文链表
算法·leetcode·链表
J_liaty16 分钟前
雪花主键(Snowflake ID)算法详解
算法
web小白成长日记22 分钟前
自定义 Hooks 的用法和意义详解(结合案例)
前端·css·面试·职场和发展·前端框架
tobias.b26 分钟前
408真题-2009-7-数据结构-无向连通图性质
数据结构·算法·408考研·408真题·真题解析
leo__5201 小时前
基于C语言的FOC算法核心模块实现
c语言·算法·机器学习
kisshuan123961 小时前
仪表盘数字识别-基于YOLOv8改进的EUCB-SC算法实现
算法·yolo
w-w0w-w1 小时前
C++泛型编程
开发语言·c++·算法