将 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;

}

};

相关推荐
m0_51801948几秒前
C++中的享元模式
开发语言·c++·算法
我带你来这儿就是为了告诉你我6 分钟前
C++23新特性前瞻
开发语言·c++·算法
陌夏10 分钟前
快速排序 (Quick Sort)
算法
罗超驿10 分钟前
Java数据结构_栈_算法题
java·数据结构·
IronMurphy20 分钟前
【算法二十九】 437. 路径总和 III
算法·深度优先
2501_9083298521 分钟前
C++安全编程指南
开发语言·c++·算法
计算机安禾23 分钟前
【C语言程序设计】第39篇:预处理器与宏定义
c语言·开发语言·c++·vscode·算法·visual studio code·visual studio
参.商.25 分钟前
【Day43】49. 字母异位词分组
leetcode·golang
m0_5698814734 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
笒鬼鬼35 分钟前
【API接口】最新可用红果短剧接口
算法·api·笒鬼鬼·红果短剧·接口源码