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

}

};

相关推荐
LYFlied8 分钟前
【每日算法】LeetCode239. 滑动窗口最大值
数据结构·算法·leetcode·面试
XiaoHu020710 分钟前
C++ 数据结构关于二叉搜索树
数据结构·算法
CoovallyAIHub12 分钟前
下一代驾驶员监测系统如何工作?视觉AI接管驾驶舱
深度学习·算法·计算机视觉
C雨后彩虹14 分钟前
事件推送问题
java·数据结构·算法·华为·面试
明洞日记14 分钟前
【设计模式手册018】访问者模式 - 分离数据结构与操作
数据结构·设计模式·访问者模式
夏鹏今天学习了吗14 分钟前
【LeetCode热题100(76/100)】划分字母区间
算法·leetcode·职场和发展
LYFlied23 分钟前
【每日算法】LeetCode 560. 和为 K 的子数组
前端·数据结构·算法·leetcode·职场和发展
Epiphany.55633 分钟前
dfn序优化树上背包
算法
fei_sun33 分钟前
【数据结构】败者树、B树、排序、查找
数据结构·b树
MicroTech202538 分钟前
微算法科技(NASDAQ MLGO)区块链混合检测模型优化确保全网防御策略一致性
科技·算法·区块链