力扣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;
    }
};
相关推荐
宝贝儿好3 小时前
【强化学习实战】第十一章:Gymnasium库的介绍和使用(1)、出租车游戏代码详解(Sarsa & Q learning)
人工智能·python·深度学习·算法·游戏·机器学习
pao__pao_6 小时前
计算机系统大作业 程序人生-Hello’s P2P
程序人生·职场和发展·课程设计
munubak6 小时前
程序人生-Hello’s P2P
程序人生·职场和发展
努力学算法的蒟蒻6 小时前
day109(3.10)——leetcode面试经典150
面试·职场和发展
芝士爱知识a6 小时前
【程序人生】码农考公指南:是“降维打击”还是“围城自困”?
程序人生·职场和发展·程序员·公务员·考公·职场规划
炒鸡菜6666 小时前
程序人生-Hello’s P2P
c语言·程序人生·职场和发展
weixin_458872616 小时前
东华复试OJ二刷复盘2
算法
Charlie_lll6 小时前
力扣解题-637. 二叉树的层平均值
算法·leetcode
爱淋雨的男人6 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶
wen__xvn7 小时前
模拟题刷题3
java·数据结构·算法