Day23力扣打卡

打卡记录

将 x 减到 0 的最小操作数(逆向思维 + 滑动窗口)

链接

将 x 减到 0 的最小操作数,可以逆向思考,求一个数组中的最大长度的滑动窗口,来使得这个窗口里的数等于 全数组之和 - x 的值。

cpp 复制代码
class Solution {
public:
    int minOperations(vector<int> &nums, int x) {
        int target = accumulate(nums.begin(), nums.end(), 0) - x;
        if (target < 0) return -1;
        int ans = -1, sum = 0, n = nums.size();
        for (int i = 0, j = 0; i < n; ++i) {
            sum += nums[i];
            while (sum > target) sum -= nums[j++];
            if (sum == target) ans = max(ans, i - j + 1);
        }
        return ans < 0 ? -1 : n - ans;
    }
};
相关推荐
liulilittle6 小时前
FileStream C++
开发语言·c++·cocoa
Gomiko6 小时前
C/C++基础(五):分支
c语言·c++
wearegogog1236 小时前
光谱分析波段选择的连续投影算法
算法
点PY6 小时前
C++ 中 std::async 和 std::future 的并发性
java·开发语言·c++
执笔论英雄6 小时前
【RL】DAPO 数据处理
算法
不会代码的小猴6 小时前
C++的第九天笔记
开发语言·c++·笔记
why1517 小时前
面经整理——算法
java·数据结构·算法
悦悦子a啊7 小时前
将学生管理系统改造为C/S模式 - 开发过程报告
java·开发语言·算法
痕忆丶7 小时前
双线性插值缩放算法详解
算法
fqbqrr7 小时前
2512C++,clangd支持模块
开发语言·c++