leetcode——将x减到0的最小操作数

文章目录

  • 题目解析
  • 所用算法
    • 算法解析
    • 步骤
  • 代码示例

题目解析

题目链接
首先我们先看一下题目如下
在这里插入图片描述
我们来解析一下这个题目其实也很简单说的是给你一个整数和一个数组问你每当移除最左边和左右边的某个数字时x也减去该元素的值,问你这里面的最佳方案是什么。(最佳方案的意思也就是删除最少的元素个数)

所用算法

算法解析

第一次看到这个题目的时候可能会有些发懵尤其是这个题目的提示说我们需要更改数组这势必会引起一些误导让我们以为需要在原数组上进行更改,但是其实这个题目并不需要那么麻烦,我们想一下假设一个数组的各个元素和为sum,对于一个数组来说我们消除两边的数字使得消除的数字和恰好等于x那么对于剩下的数字,不就是sum-x吗?那么按照逆向思维是不是说我们只需要找到一个窗口使得窗口中的元素恰好等于sum-x即可
想到这里我相信很多同学肯定一拍脑门想到我去这不就是滑动窗口的经典使用吗?是的事实也正是如此,那么现在我们来看一下步骤吧

步骤

第一步:计算出sum的值也就是该数组的每个元素相加的和
在这里插入图片描述
第二步初始化滑动窗口:
在这里插入图片描述
第三步指针移动:当right移动到right和left之间的元素和恰好等于sum-x的时候更新一下长度即可更新数据
在这里插入图片描述

代码示例

class Solution {
public:int minOperations(vector<int>& nums, int x) {int left=0,right=0;int sum=0;int num=0;for(int a:nums) sum+=a;//算数组中值总的大小int target=sum-x;int ret=-1;if(target<0)return -1;while(right<nums.size()&&left<nums.size()){num+=nums[right++];//进窗口while(num>target&&left<nums.size()&&left>=0){num-=nums[left];left++;}if(num==target)//更新结果{ret=max(ret,right-left+1);}}if(ret==-1)return -1;else  return nums.size()-ret;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT给出的前端面试考点(html+css+JS)

ChatGPT给出的前端面试考点&#xff08;htmlcssJS&#xff09; HTML HTML是什么&#xff0c;它的主要作用是什么&#xff1f; 什么是DOCTYPE&#xff0c;为什么在HTML文档中使用它&#xff1f; HTML5相对于之前的HTML版本有哪些主要的新特性&#xff1f; 解释语义化HTML的概…

pandas的concat

pandas的concat()函数用于连接&#xff08;合并&#xff09;pandas对象&#xff0c;如Series、DataFrame或Panel&#xff0c;沿指定的轴进行连接。 语法&#xff1a; pandas.concat(objs, axis0, join‘outer’, ignore_indexFalse, keysNone) 参数说明&#xff1a; objs: 要…

安防监控系统EasyCVR平台用户调用设备参数,信息不返回是什么原因?

安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有…

【数字人】10、HyperLips | 使用 audio 实现高保真高清晰的唇部驱动

文章目录 一、背景二、相关工作2.1 Audio-Driven Talking Face Generation2.2 HyperNetwork2.3 Prior Based Face Restoration 三、方法3.1 Base Face Generation3.2 High-Fidelity Rendering 四、效果 论文&#xff1a;HyperLips: Hyper Control Lips with High Resolution De…

着色器语言GLSL学习

1 初步尝试 import { Scene, WebGLRenderer, OrthographicCamera, PlaneGeometry, ShaderMateria } from three.jsconst scene new Scene() const camera new OrthographicCamera(-1,1,1,-1,0.1, 10)const renderer new WebGLRenderer() renderer.setSize(window.innerWidt…

springcloud之链路追踪

写在前面 源码 。 本文一起来看下链路追踪的功能&#xff0c;链路追踪是一种找出病因的手段&#xff0c;可以类比医院的检查仪器&#xff0c;服务医生治病救人&#xff0c;而链路追踪技术是辅助开发人员查找线上问题的。 1&#xff1a;为什么微服务需要链路追踪 孔子同志月过…

中仕公考:国考进面后资格复审需要准备什么?

参加国考面试的考生在资格审核阶段需要准备以下材料&#xff1a; 1、本人身份证、学生证或工作证复印件。 2、公共科目笔试准考证复印件。 3、考试报名登记表。 4、本(专)科、研究生各阶段学历、学位证书(应届毕业生没有可以暂时不提供)。 5、报名资料上填写的各类证书材料…

剑指 Offer 40.最小的k个数

剑指 Offer 40.最小的k个数 剑指 Offer 40.最小的k个数 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4] 提示&#xff1a; 0 < len(arr) &l…

Spring Boot3 跨域配置 Cors

什么是CORS&#xff1f; CORS&#xff0c;全称是“跨源资源共享”&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff0c;是一种Web应用程序的安全机制&#xff0c;用于控制不同源的资源之间的交互。 在Web应用程序中&#xff0c;CORS定义了一种机制&#xff0c…

前端:布局(用于div中有多行元素,一行只显示四个,最左或最右要紧贴父div,最顶层和最底层也要紧贴父div)

效果 一、flex实现 html <!DOCTYPE html> <html><head><title>Flexbox Layout</title><style>.container {display: flex;flex-wrap: wrap;justify-content: space-between;gap: 10px;border: 1px solid red;}.box {flex: 1 0 calc(25% …

2023年中国传感器行业研究报告(附传感器产业链全景图谱)

​传感器是一种通常由敏感元件和转换元件组成的检测装置&#xff0c;测量并感知信息后&#xff0c;通过变换让传感器中的数据或价值信息转换成电信号或其他所需形式的输出&#xff0c;以满足信息的传输、处理、存储、显示、记录和控制等要求。传感器是数字经济时代关键的硬件入…

4.Swing常用组件

Swing常用组件 4. Swing常用组件4.1 面板组件4.1.1 JPanel4.1.1.1 构造方法4.1.1.2 常用方法 4.1.2 JScrollPane4.1.2.1 构造方法4.1.2.2 常用方法 4.2 文本组件4.2.1 JTextField4.2.1.1 构造方法4.2.1.2 常见方法 4.2.2 JTextArea4.2.2.1 构造方法4.2.2.2 常见方法 4.3 标签组…

Educational Codeforces Round 161 (Rated for Div. 2) B 2的零次方竟然是1

目录 心情&#xff1a; 55.999999999999993&#xff1a; 题意&#xff1a; 思路&#xff1a; 核心代码&#xff1a; 心情&#xff1a; Div.2&#xff0c;我竟然在50分钟内C题做掉了&#xff0c;想着B题做了基本上不会掉分了这把&#xff0c;B题要考什么我也清楚&#xff0…

【Kafka】Kafka介绍、架构和概念

目录 Kafka介绍Kafka优势Kafka应用场景Kafka基本架构和概念ProducerConsumer/Consumer GroupBrokerZooKeeperTopicPartitionReplicasOffsetsegment Kafka介绍 Kafka是是一个优秀的分布式消息中间件&#xff0c;关于常用的消息中间件对比可参考文章&#xff1a;消息中间件概述。…

【Docker】Nacos的单机部署及集群部署

一、Nacos的介绍 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 动态服务发现&#xff1a;Nacos支持DNS与RPC服务发现&#xff0c;提供原生SDK、OpenAPI等多种服务注册方式和DNS、HTTP与API等多种服务发现方式。服务健康监测&#xff1a;Nacos提供…

Python数据分析案例32——财经新闻爬虫和可视化分析

案例背景 很多同学的课程作业都是需要自己爬虫数据然后进行分析&#xff0c;这里提供一个财经新闻的爬虫案例供学习。本案例的全部数据和代码获取可以参考&#xff1a;财经新闻数据 数据来源 新浪财经的新闻网&#xff0c;说实话&#xff0c;他这个网站做成这样就是用来爬虫的…

鸿蒙开发(五)鸿蒙UI开发概览

从用户角度来讲&#xff0c;一个软件拥有好看的UI&#xff0c;那是锦上添花的事情。再精确的算法&#xff0c;再厉害的策略&#xff0c;最终都得通过UI展现给用户并且跟用户交互。那么&#xff0c;本篇一起学习下鸿蒙开发UI基础知识&#xff0c;认识下各种基本控件以及使用方式…

Zoho Survey评价:功能全面,值得一试

通常来讲&#xff0c;我们在使用一款问卷调查制作工具制作问卷时会有哪些需求呢&#xff1f; 用户需求 1、操作简单&#xff0c;易上手。 2、能够满足用户个性化的需求。 3、提供多语言服务。 4、能够帮助发布以及数据收集。 5、简化数据分析 市面上的问卷调查制作工具都…

如何学习一些需要算法的程序

如何看懂一个程序&#xff0c;分三步&#xff1a; 流程每个语句的功能试数 如何学习一些需要算法的程序【如何掌握一个程序】&#xff1a; 尝试自己去编程解决它 但要意识到大部分人都是自己无法解决的&#xff0c;如果解决不了&#xff0c;这时不要气馁&#xff0c;如果十五…

探索FTP:原理、实践与安全优化

引言 在正式开始讲解之前&#xff0c;首先来了解一下文件存储的类型有哪些。 DAS、SAN和NAS是三种不同的存储架构&#xff0c;分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储)&#xff1a;DAS 是指将存储设备&#xff08;如硬盘&#x…