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

}

};

相关推荐
点云SLAM23 分钟前
图论中邻接矩阵和邻接表详解
算法·图论·slam·邻接表·邻接矩阵·最大团·稠密图
啊董dong29 分钟前
课后作业-2025年11月23号作业
数据结构·c++·算法·深度优先·noi
星释35 分钟前
Rust 练习册 80:Grains与位运算
大数据·算法·rust
dlz08361 小时前
从架构到数据结构,到同步逻辑,到 show run 流程优化
数据结构
jllws11 小时前
数据结构_字符和汉字的编码与查找
数据结构
zzzsde1 小时前
【C++】C++11(1):右值引用和移动语义
开发语言·c++·算法
学困昇1 小时前
C++11中的包装器
开发语言·数据结构·c++·c++11
sheeta19984 小时前
LeetCode 每日一题笔记 日期:2025.11.24 题目:1018. 可被5整除的二进制前缀
笔记·算法·leetcode
gfdhy10 小时前
【c++】哈希算法深度解析:实现、核心作用与工业级应用
c语言·开发语言·c++·算法·密码学·哈希算法·哈希