力扣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;
    }
};
相关推荐
GoCoding11 小时前
YOLO-Master 与 YOLO26 开始
算法
VALENIAN瓦伦尼安教学设备11 小时前
设备对中不良的危害
数据库·嵌入式硬件·算法
参.商.11 小时前
【Day48】46. 全排列
leetcode·golang
不熬夜的熬润之11 小时前
APCE-平均峰值相关能量
人工智能·算法·计算机视觉
yzx99101311 小时前
实时数据流处理实战:从滑动窗口算法到Docker部署
算法·docker·容器
佩奇大王12 小时前
P674 三羊献瑞
算法·深度优先·图论
studyForMokey12 小时前
【Android面试】View绘制流程专题
android·面试·职场和发展
发疯幼稚鬼12 小时前
大整数乘法运算
c语言·算法
宵时待雨13 小时前
C++笔记归纳17:哈希
数据结构·c++·笔记·算法·哈希算法
酉鬼女又兒13 小时前
零基础快速入门前端CSS Transform 与动画核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·css·职场和发展·蓝桥杯·html