力扣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;
    }
};
相关推荐
马士兵教育2 分钟前
百万年薪架构师真实案例分享:Java后端面试【金钥匙】,从简历到offer的全流程拆解!
面试·职场和发展
AI移动开发前沿5 分钟前
AI原生应用开发:链式思考技术面试常见问题解析
ai·面试·职场和发展·ai-native
py有趣6 分钟前
LeetCode算法学习之旋转矩阵
学习·算法·leetcode
三花聚顶<>6 分钟前
310.力扣LeetCode_ 最小高度树_三种方法总结
算法·leetcode·职场和发展
萘柰奈6 分钟前
LeetCode----200.岛屿数量(Medium)
算法·leetcode·职场和发展
MonkeyKing_sunyuhua9 分钟前
量化只支持a8w8和w4a8,其中a8w8和w4a8是什么意思?
人工智能·算法
霍格沃兹测试开发学社9 分钟前
被裁后,我如何实现0到3份大厂Offer的逆袭?(内附面试真题)
人工智能·selenium·react.js·面试·职场和发展·单元测试·压力测试
未来之窗软件服务20 分钟前
幽冥大陆(三十九)php二维数组去重——东方仙盟筑基期
android·开发语言·算法·php·仙盟创梦ide·东方仙盟·东方仙盟sdk
DFT计算杂谈23 分钟前
Abinit-10.4.7安装教程
linux·数据库·python·算法·matlab
sali-tec32 分钟前
C# 基于halcon的视觉工作流-章65 点云匹配-基于形状
开发语言·人工智能·算法·计算机视觉·c#