Leetcode每日刷题之1658.将x减到0的最小操作数(C++)

news/2024/9/13 10:22:40/ 标签: leetcode, c++, 算法, 滑动窗口

1.题目解析

本题的要求是给出一个正整数数组与一个x,要求只从数组两端取数据后x减去取出的数据,求出将x减为0的最小操作数,即找出数组两端的数字保证其和为x并且要求取出的数字个数最少,如果没有符合要求的数字则返回-1 题目来源:1658.将x减到0的最小操作数

 

2.算法原理

本题如果直接从数组两端开始找若干数字使其等于x将很困难,那么可以转变思路,求出所给数组的总和后找出最长的子数组使该子数组的和为总数组和 - x即可,即转化为找出数组中最长的子数组使其等于指定数字即可

这里我们用到的算法是"滑动窗口",即将总数组的和定义为count,子数组的和定义为sum,然后定义一个target = count - x,然后找出最长子数组使其 sum = target,找不到则返回-1,这时我们可以定义双指针right与left首先置于总数组开头,将right指针右移,不断对 sum++ 完成入窗口操作,直到 sum > target 时将 left 指针右移,此时如果 sum = target 则更新子数组长度,依次类推直到遍历完整个数组

3.代码展示

class Solution {
public:int minOperations(vector<int>& nums, int x){int n = nums.size();int count = 0;int len  = -1;for(auto e : nums){count += e;}int target = count - x;if(target < 0){return -1;}for(int left = 0,right = 0,sum = 0;right < n;right++){sum += nums[right];while(sum > target){sum -= nums[left++];}if(sum == target){len = max(len,right - left + 1);}}if(len == -1){return len;}else{return n - len;}}
};

http://www.ppmy.cn/news/1516554.html

相关文章

使用redis模拟cookie-session,例子:实现验证码功能

目录 在前后端分离架构中不建议使用cookie-session机制实现端状态识别 所以我们可以使用redis来模拟session-cookie机制 下面我们通过实现验证码的功能来举例 第一步&#xff1a;了解前端要我们返回的数据变量名字&#xff0c;变量类型 1.封装code,data成一个result类&…

Android 架构模式之 MVVM

Android 架构 Android 架构模式之 MVCAndroid 架构模式之 MVPAndroid 架构模式之 MVVM 目录 Android 架构架构设计的目的对 MVVM 的理解代码ModelViewViewModel Android 中 MVVM 的问题试吃个小李子BeanModelViewViewModel效果展示 大家好&#xff01; 作为 Android 程序猿&a…

卡片写作只是基础

卡片写作法&#xff0c;降低了写作门槛&#xff0c;让很多人开始喜欢写作&#xff0c;积累了不少。 接下来问题来了&#xff0c;卡片写作的内容&#xff0c;将来怎么输出啊&#xff0c;卡片和文章什么关系&#xff1f;如何写成文章&#xff1f; 这个问题&#xff0c;我最初以…

深度学习----------------------残差网络ResNet

目录 ResNet加更多的层总是改进精度吗&#xff1f;残差块ResNet块细节不同的残差块ResNet块ResNet架构总结 ResNet代码实现残差块输入和输出形状一致增加输出通道数的同时&#xff0c;减半输出的高和宽ResNet模型观察ResNet中不同模块的输入形状是如何变化的训练模型 问题ResNe…

有效提高媒体曝光率,智能推荐为什么是“最大的计算系统之一”?

导语&#xff1a;我认为很少有人意识到&#xff0c;推荐系统是世界上构想过的最大的计算系统之一。——Jensen Huang &#xfeff; 在信息过载的时代背景下&#xff0c;智能推荐系统已广泛应用于电子商务、社交媒体、新闻资讯、视频音乐、旅游出行等领域&#xff0c;为用户提…

计算机毕业设计推荐-基于python的新能源汽车销售数据可视化分析【python-爬虫-大数据定制】

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于python的新能源汽车销售…

声音克隆GPT-SoVITS 2.0软件和详细的使用教程!

天命人&#xff0c;请允许我先蹭个热点&#xff01; 原始声音&#xff1a; 播放 克隆声音&#xff1a; 播放 文章写了一半&#xff0c;被《黑神话悟空》刷屏了。突发奇想&#xff0c;用里面的声音来做个素材试试看。 B站捞了一点声音素材&#xff0c;随便剪一剪&#xff0c…

SSRF漏洞与redis未授权访问的共同利用

1.利用靶场Pikachu来认识SSRF漏洞 1.什么是SSRF SSRF漏洞允许攻击者通过向服务器发起请求来伪造请求。这种漏洞的核心在于攻击者能够控制服务器向任意目标地址发起请求&#xff0c;而这些请求通常是攻击者无法直接从客户端发起的。 简单来说&#xff0c;假设你的网站有一个功能…

C语言经典案例分享

题目&#xff1a;输入三个整数 x、y、z&#xff0c;请把这三个数由小到大输出。 程序分析&#xff1a;我们想办法把最小的数放到 x 上&#xff0c;先将 x 与 y 进行比较&#xff0c;如果 x>y 则将 x 与 y 的值进行交换&#xff0c;然后再用 x 与 z 进行比较&#xff0c;如果…

CMakeLists.txt文件编写学习总结

CMakeLists.txt文件编写学习总结 一、CMakeLists.txt基础知识1.1 基本结构1.2 主要命令cmake_minimum_requiredprojectadd_executableadd_libraryinclude_directoriestarget_include_directoriesfind_packagetarget_link_libraries 二、CMakelists 常用的变量2.1 CMake 预定义变…

二十三种模式之单例模式(基础了解)

1.设计模式的分类 创建型模式(五种)&#xff1a;工厂方法模式、单例模式、抽象工厂模式、原型模式、建造者模式。结构型模式(七种)&#xff1a;适配器模式、代理模式、装饰器模式、桥接模式、外观模式、享元模式、组合模式。行为型模式(十一种)&#xff1a;状态模式、模板方法…

服务器机柜是什么意思?

服务器机柜主要是用来存放、保护和管理服务器设备的一个专用设备和设施&#xff0c;整体是一种类似于柜子的结构&#xff0c;通常是由金属材质多制成的&#xff0c;具有多个格子或者是槽位&#xff0c;用来安全和组织多台服务器&#xff0c;接下来小编就来具体介绍一下服务器机…

深度解析浏览器工作原理 - 浏览器渲染解析流程

在基本理解下面的内容后,再回过来看该图就会一目了然了 浏览器工作原理 当我们在浏览器中输入一个URL并发送请求时,主要会有如下几个处理步骤… 1. URL 解析与缓存检查 浏览器会先对 URL 进行解析,识别对应的协议(如 http、https)、域名、端口号和路径等信息 浏览器在发…

okhttp的WebSocket心跳实现原理

okhttp的WebSocket实现心跳包需要服务端新增协议吗 ‌不需要。‌ OkHttp的WebSocket实现已经内置了心跳包机制&#xff0c;通过PING/PONG帧来维持连接保活。这意味着&#xff0c;OkHttp的WebSocket客户端和服务端在通信过程中&#xff0c;会自动发送PING/PONG帧来检测连接的活…

Qt实现json数据的生成、解析、修改和删除

文章介绍 本文章主要介绍如何使用QT提供的json相关类来处理json数据&#xff0c;包括json数据的生成、解析、修改和json数据的删除。 json数据的增删改查 处理json数据时需要包含以下三个头文件 #include <QJsonDocument>#include <QJsonObject>#include <QJ…

企业群集应用概述与 LVS 负载均衡详解

文章目录 企业群集应用概述与 LVS 负载均衡详解一、企业群集应用概述1.1 群集的含义1.2 现有问题1.3 解决方法 二、企业群集分类2.1 负载均衡群集&#xff08;Load Balance Cluster&#xff09;2.2 高可用群集&#xff08;High Availability Cluster&#xff09;2.3 高性能运算…

游戏开发设计模式之装饰模式

目录 装饰模式在游戏开发中的具体应用案例是什么&#xff1f; 如何在Unity中实现装饰模式以动态扩展游戏对象的功能&#xff1f; 装饰模式与其他设计模式&#xff08;如适配器模式、代理模式&#xff09;相比&#xff0c;有哪些优势和劣势&#xff1f; 优势 劣势 与适配器…

数学建模2024国赛时间及事项安排

2024年的全国大学生数学建模竞赛即将拉开帷幕。考虑到许多同学可能是首次参与此类赛事&#xff0c;尚不清楚如何进行有效的时间安排&#xff0c;博主在此整理了以往参赛的经验和时间管理策略&#xff0c;希望能为大家提供一些有益的参考&#xff0c;更从容地应对国赛。 本届全国…

如何完全掌握音准?

要完全掌握音准&#xff0c;需要综合多方面的训练和实践。以下是一些关键步骤和技巧&#xff1a; 一、基础准备 了解音准概念&#xff1a; 音准是指歌唱和乐器演奏中所发的音高能与一定律制的音高相符。掌握音准有赖于敏锐的听觉、精湛的技巧与适宜的演出环境。选择合适的乐器…

吴恩达机器学习课后作业-04神经网络

神经网络 对y进行独立热编码处理&#xff08;one-hot处理&#xff09;序列化权重参数前向传播代价函数反向传播神经网络优化可视化隐藏层 对y进行独立热编码处理&#xff08;one-hot处理&#xff09; def one_hot_encoder(raw_y):result[]for i in raw_y:#1-10y_tempnp.zeros(1…