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;
    }
};
相关推荐
Georgewu5 小时前
【AI大模型入门指南】提示词Prompt工程详解
算法·aigc·ai编程
ZackSock10 小时前
Policy Gradient 极简教程
算法
Big_Yellow_J11 小时前
深入浅出了解生成模型-3:Diffusion模型原理以及代码
算法·面试
用户6869161349012 小时前
哈希表实现指南:从原理到C++实践
数据结构·c++
ZackSock12 小时前
从零实现 RAG
算法
Jolyne_12 小时前
前端常用的树处理方法总结
前端·算法·面试
大老板a13 小时前
c++五分钟搞定异步处理
c++
前端付豪15 小时前
微信视频号推荐系统揭秘:兴趣建模、多模态分析与亿级流控架构实战
前端·后端·算法
木杉苑15 小时前
快速幂算法
算法
羑悻的小杀马特17 小时前
从信息孤岛到智能星云:学习助手编织高校学习生活的全维度互联网络
c++·学习·生活·api