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

devtools/2025/1/16 0:57:46/

题目

链接:leetcode链接
在这里插入图片描述

思路分析(滑动窗口)

题目要求从最左边或者最右边移除元素,需要思考两侧,这是比较麻烦的。
正难则反,我们逆向思维一下,最后剩余的元素是不是中间的连续区间,所以,这个题目可以转化成寻找一个最长连续子数组,使得子数组的和为原数组的和减去x。

很明显,使用滑动窗口可以很快速的解决这道题。

但是这道题目还是有一些细节需要考虑的:
1、可能原数组的和 <= x,这是要进行特殊判断的
2、确定好如何进窗口,判断,出窗口,更新结果。
3、最后的返回值,要用size - len,别直接返回len

代码

int minOperations(vector<int>& nums, int x) {int sum = 0;for(auto e:nums) sum += e;int target = sum - x;if(target < 0) return -1;//可能总和小于xif(target == 0) return nums.size();int len = 0,s = 0;for(int left = 0,right = 0;right < nums.size();++right){ s += nums[right];//进窗口while(s > target)//出窗口{s -= nums[left];++left;}if(s == target)len = max(right - left + 1,len);}return len == 0?-1:nums.size() - len;}

http://www.ppmy.cn/devtools/111542.html

相关文章

【mysql】逻辑运算符

逻辑运算符 逻辑运算符主要是为了判断表达式的真假,返回结果也是1,0,null OR 这里面或就是两个条件或的关系,比如我要department_id等于10和等于20的情况就可以使用或. SELECT last_name,salary,department_id FROM employees WHERE department_id10 OR department_id20 …

pandas中基于范围条件进行表连接

来自&#xff1a;Python大数据分析 费弗里 表连接是我们日常开展数据分析过程中很常见的操作&#xff0c;在pandas中基于join()、merge()等方法&#xff0c;可以根据左右表连接依赖字段之间对应值是否相等&#xff0c;来实现常规的表连接。 但在有些情况下&#xff0c;我们可能…

在VMware部署银河麒麟系统

虚拟机镜像安装文件从下面下载: 银河麒麟桌面操作系统V10SP1 2403 下载地址_银河麒麟v10镜像iso下载-CSDN博客 虚拟机安装要求硬盘大小至少40G,我悬着60G 选择桥接网络安装后上不了网并且和本机也互相ping不通,因此选择Nat方式,然后重启,就可以上网 下面开始安装,第一个…

富格林:整理可信技巧应对虚假

富格林指出&#xff0c;投资者进入黄金市场的第一课&#xff0c;应该是学会利用可信的技巧应对市场的交易风险&#xff0c;避免虚假猫腻的捣乱。黄金市场瞬息万变&#xff0c;虽然有交易操作的就会&#xff0c;但也伴随着一定的风险。投资者对于应对预防虚假的措施需求还是比较…

使用Docker快速启动Nacos集群

Nacos 是一个易于使用的平台&#xff0c;用于动态服务发现、配置管理和服务管理。它帮助您在云环境中快速构建云原生应用程序&#xff0c;支持服务的注册与发现、动态配置更新等功能。在本文中&#xff0c;我们将介绍如何使用 Docker 快速启动 Nacos 集群。 为什么使用 Docker…

基于ACMEv2协议的免费证书申请

项目&#xff1a;https://github.com/cook-code-jazor/acmex 非开源&#xff0c;使用webui管理证书的申请&#xff0c;所有文件本地化存储&#xff0c;支持windows/linux/osx. 运行 很简单,直接运行命令 ./acmex --runas console首次运行没有配置文件&#xff0c;会要求你填…

Linux下安装和使用SVN及常用操作命令详解

概述 Subversion&#xff08;简称SVN&#xff09;是一个强大的版本控制系统&#xff0c;它可以帮助开发者管理和跟踪代码的变更。本文将详细介绍在Linux环境下如何安装SVN&#xff0c;并列出了一些常用的SVN操作命令&#xff0c;以便于您在日常工作中更好地使用SVN。 一、Lin…

MySQL总结(上)

目录 一、SQL语句1.1、DDL&#xff08;数据库定义语言&#xff09;1.1.1、定义数据库1.1.2、定义数据表 1.2、DML&#xff08;数据库操作语言&#xff09;1.2.1、增加 insert into1.2.2、删除 delete1.2.3、修改 update 1.3、DQL&#xff08;数据库查询语言&#xff09;1.3.1、…