力扣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;
    }
};
相关推荐
Epiphany.55615 小时前
蓝桥杯2024年第十五届决赛真题-套手镯
c++·算法·蓝桥杯
Σίσυφος190015 小时前
E = Kᵀ F K 的数学原理
算法
小O的算法实验室15 小时前
2025年JIM SCI2区,基于Q学习多目标粒子群算法+节能型分布式流水车间调度,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
YunchengLi15 小时前
【计算机图形学中的四元数】1/2 Quaternions for Computer Graphics
人工智能·算法·机器学习
重生之后端学习15 小时前
108. 将有序数组转换为二叉搜索树
数据结构·算法·深度优先
诸葛务农15 小时前
点云配准在人形机器人中的应用:ICP算法(1)
算法·机器学习·机器人
寻寻觅觅☆1 天前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
偷吃的耗子1 天前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
化学在逃硬闯CS1 天前
Leetcode1382. 将二叉搜索树变平衡
数据结构·算法
ceclar1231 天前
C++使用format
开发语言·c++·算法