力扣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;
    }
};
相关推荐
菜鸡儿齐几秒前
leetcode-最小覆盖子串
算法·leetcode·职场和发展
流云鹤15 分钟前
2026牛客寒假算法基础集训营4(A B C I H F G)
算法
每天要多喝水18 分钟前
动态规划Day31:子序列长度1
算法·动态规划
lxl130726 分钟前
C++算法(3)二分算法
数据结构·c++·算法
随意起个昵称26 分钟前
Dijstra算法学习笔记
笔记·学习·算法
我命由我1234538 分钟前
Photoshop - Photoshop 工具栏(60)污点修复工具
ui·adobe·职场和发展·求职招聘·职场发展·课程设计·photoshop
lifallen39 分钟前
笛卡尔树 (Cartesian Tree)
java·数据结构·算法
ab15151741 分钟前
2.15完成105、106、110
数据结构·算法
Clarence Liu43 分钟前
用大白话讲解人工智能(5) SVM支持向量机:找一条“最宽的分隔线“
人工智能·算法·支持向量机
不想看见4041 小时前
N-Queens -- 回溯法 -- 力扣101算法题解笔记
java·数据结构·算法