leetcode1658. 将 x 减到 0 的最小操作数

编程入门 行业动态 更新时间:2024-10-14 00:30:46

leetcode1658. 将 x 减到 0 的<a href=https://www.elefans.com/category/jswz/34/1769671.html style=最小操作数"/>

leetcode1658. 将 x 减到 0 的最小操作数

题目链接:1658. 将 x 减到 0 的最小操作数 - 力扣(LeetCode)

知道滑动窗口,代码却写不出来

#define MIN(a ,b) ((a) < (b) ? (a) : (b))int minOperations(int* nums, int numsSize, int x)
{int ans = INT_MAX;int sum = 0;for (int i = 0; i < numsSize; i++) {sum += nums[i];}if (sum < x) {return -1;}int left = -1;int right = 0;int lsum = 0; // left为-1,左边数组为空,前缀和为0int rsum = sum; // right为0,右边选中整个数组,后缀和为数组和sumwhile (left < numsSize) {if (left != -1) {lsum += nums[left]; // 更新前缀和}while (right < numsSize && lsum + rsum > x) {rsum -= nums[right++]; // 前缀和后缀和相加大于x,缩小右数组}if (lsum + rsum == x) {ans = MIN(ans, left + 1 + numsSize - right); // 更新最小操作数}left++;}return ans == INT_MAX ? -1 : ans;
}

更多推荐

leetcode1658. 将 x 减到 0 的最小操作数

本文发布于:2023-12-04 06:47:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1660076.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最小   操作

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!