专题二将x减到0的最小操作数

embedded/2025/3/6 18:52:15/

1.题目

题目分析:

题目给出整数数组和整数x,整数x表示操作数值,可以移除数组的左右俩边一个数,每移除一次,x 就要减去移除数字的大小,如果x变为0就返回移除的次数,不等于0就返回-1.

2.算法原理

正面来处理是复杂的,不知道左右那边来进行移除,就可以从反面来处理,要求最小操作数,就可以求最大的长度,因为操作数就是移除了多个元素,移除最小,则处理后的数组就是最大的,那求出最大的数组就可以反向得到最小的操作数了。就可以用窗口滑动来解决。

注意:target=数组元素和-x,因为整数数组没有负数,所以target就要大于0,不然就返回-1.

3.代码实现

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 n=nums.size();int sum1=0;int operation=INT_MIN;for(int left=0,right=0;right<n;right++){sum1+=nums[right];while(sum1>target){sum1-=nums[left++];}if(sum1==target)operation=max(operation,right-left+1);}return operation==INT_MIN?-1:n-operation;}};


http://www.ppmy.cn/embedded/170538.html

相关文章

初次使用 IDE 搭配 Lombok 注解的配置

前言 在 Java 开发的漫漫征程中&#xff0c;我们总会遇到各种提升效率的工具。Lombok 便是其中一款能让代码编写变得更加简洁高效的神奇库。它通过注解的方式&#xff0c;巧妙地在编译阶段为我们生成那些繁琐的样板代码&#xff0c;比如 getter、setter、构造函数等。然而&…

宇树科技G1人形机器人:从炫技到实用,AI驱动下的进化跃迁‌

‌ 宇树科技的G1人形机器人近期凭借“720度回旋踢”“走梅花桩”等高难度动作频频出圈&#xff0c;成为人形机器人领域的现象级产品。 G1人形机器人看似炫技的表演背后&#xff0c;实则暗含了技术突破的深意。G1的每一次技能升级&#xff0c;都是对机器人运动控制、平衡算法和A…

算法随笔_65: 多数元素_方法1

上一篇:算法随笔_64: 含特定字母的最小子序列-CSDN博客 题目描述如下: 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1…

D033 neo4j知识图谱在线学习系统vue+django+neo4j【单课程】

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站&#xff0c;有好处&#xff01; &#x1f90d;编号&#xff1a;D033 &#x1f90d;智能问答(检索式)&#xff1a;知识点所包含知识点、学习路线、预习知识、知识点概念 …

TCP、UDP、WebSocket 和 HTTP 教程

一、TCP&#xff08;传输控制协议&#xff09; 1. 原理 TCP 处于传输层&#xff0c;负责为应用层提供可靠的、面向连接的字节流服务。在数据传输前&#xff0c;它会通过"三次握手"建立连接&#xff0c;确保通信双方都具备收发数据的能力&#xff1b;传输过程中&…

【大模型安全】模型对抗攻击手段

【大模型安全】模型对抗攻击手段 1.基于梯度的攻击方法&#xff08;白盒&#xff09;FGSM 攻击PGD 攻击 2.基于优化的攻击方法&#xff08;白盒&#xff09;3.基于迁移的攻击方法&#xff08;黑盒&#xff09;4.基于GAN的攻击方法&#xff08;灰盒&#xff09;5.基于决策边界的…

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存&#xff0c;保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端&#xff0c;也是一个服务器&#xff0c;是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…

Centos 7.9内核升级

手动内核从3.10升级到5.15 从https://dl.lamp.sh/kernel/el7/下载两个包 安装主内核包 sudo rpm -ivh kernel-ml-5.15.148-1.el7.elrepo.x86_64.rpm 安装开发包&#xff08;编译 eBPF 必需&#xff09; sudo rpm -ivh kernel-ml-devel-5.15.148-1.el7.elrepo.x86_64.rpm …