力扣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;
    }
};
相关推荐
随意起个昵称5 小时前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·5 小时前
线段树模板
算法
段一凡-华北理工大学5 小时前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
凯瑟琳.奥古斯特5 小时前
高阶子查询题目精炼
开发语言·数据库·python·职场和发展·数据库开发
叶小鸡6 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘6 小时前
aaaaa
数据结构·c++·算法
菜菜的顾清寒7 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly7 小时前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
凯瑟琳.奥古斯特7 小时前
数据库原理选择题精选
数据库·python·职场和发展
逻辑君7 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵