将 x 减到 0 的最小操作数

class Solution {

public:

int minOperations(vector<int>& nums, int x) {

int sum = 0;

for (int e : nums) sum += e;

int target = sum - x;

if (target < 0) return -1;

int ret = -1;

for (int left = 0, right = 0, tmp = 0; right < nums.size(); right++)

{

tmp += nums[right];

while (target < tmp)

tmp -= nums[left++];

if (tmp == target)

ret = max(ret, right - left + 1);

}

if (ret == -1) return -1;

else return nums.size() - ret;

}

};

相关推荐
yanchao_hu5 分钟前
数据结构基础内容(第二篇:线性结构)
数据结构·windows
明明如月学长42 分钟前
什么你不知道 Cherry Studio 有快捷助手?
算法
拳里剑气1 小时前
C语言:顺序表(上)
c语言·开发语言·数据结构·学习方法
Vegetable_Dragon1 小时前
数论1.01
算法
Star在努力1 小时前
15-C语言:第15天笔记
c语言·笔记·算法
我有一计3331 小时前
【算法笔记】5.LeetCode-Hot100-矩阵专项
人工智能·算法·程序员
行然梦实2 小时前
KnEA(Knee-point-driven Evolutionary Algorithm)简介
人工智能·算法·机器学习
qq_513970442 小时前
力扣 hot100 Day58
算法·leetcode
积极向上的zzz2 小时前
java中一些数据结构的转换
java·开发语言·数据结构
每天都在想吃啥2 小时前
day22 哈希表和二叉树
数据结构·哈希算法·散列表