当前位置: 首页 > news >正文

【C++】滑动窗口:将x减到0的最小操作数

1.题目

2.算法思路

这个题目难在要转化一下才能用滑动窗口。

题意是需要在数组的前后两段区间进行解题,但同时对两段区间进行操作是比较困难的,我们可以将中间这段区间只和与nums_sum-x(数组总和-x)进行比较,这样就可以很好的将两段区间合并成一段区间,进而使用滑动窗口算法解题。

滑动窗口算法我在《优选基础算法》中滑动窗口的前两个题目中介绍的比较清楚,大家可以去看一看。

3.提交结果与代码实现

class Solution {
public:int minOperations(vector<int>& nums, int x) {int sum1=0,n=nums.size(),sum2=0,len=0;for(auto e:nums) sum1+=e;int target=sum1-x;//正难则反if(target<0) return -1;//考虑边界情况if(target==0) return n;//考虑边界情况for(int left=-1,right=0;right<n;right++){sum2+=nums[right];//进窗口while(sum2>target) sum2-=nums[++left];出窗口if(sum2==target) len=max(len,right-left);//更新结果}if(len==0) return -1;else return nums.size()-len;}
};

时间复杂度:O(n)。空间复杂度:O(1)。

相关文章:

【C++】滑动窗口:将x减到0的最小操作数

1.题目 2.算法思路 这个题目难在要转化一下才能用滑动窗口。 题意是需要在数组的前后两段区间进行解题&#xff0c;但同时对两段区间进行操作是比较困难的&#xff0c;我们可以将中间这段区间只和与nums_sum-x&#xff08;数组总和-x&#xff09;进行比较&#xff0c;这样就可…...

运动控制“MC_MoveVelocity“功能块详细应用介绍

1、运动控制单位u/s介绍 运动控制单位[u/s]介绍-CSDN博客文章浏览阅读91次。运动控制很多手册上会写这样的单位,这里的u是英文单词unit的缩写,也就是单位的意思,所以这里的单位不是微米/秒,也不是毫米/秒,这里是一个泛指,当我们的单位选择脉冲时,它就是脉冲/秒,也就是…...

9种单片机常用的软件架构

长文预警&#xff0c;加代码5000多字&#xff0c;写了4个多小时&#xff0c;盘软件架构&#xff0c;这篇文章就够了! 可能很多工程师&#xff0c;工作了很多年&#xff0c;都不会有软件架构的概念。 因为我在做研发工程师的第6年&#xff0c;才开始意识到这个东西&#xff0c;在…...

PyQt5中重要的概念:信号与槽

PyQt中信号与槽概念定义如下&#xff08;网络上引用的&#xff09;&#xff1a; 信号&#xff08;signal&#xff09;和槽&#xff08;slot&#xff09;是Qt的核心机制&#xff0c;也是在PyQt编程中对象之间进行通信的机制。在创建事件循环之后&#xff0c;通过建立信号和槽的…...

MacOS快速安装FFmpeg,并使用FFmpeg转换视频

前言&#xff1a;目前正在接入flv视频流&#xff0c;但是没有一个合适的flv视频流地址。网上提供的flv也都不是H264AAC&#xff08;一种视频和音频编解码器组合&#xff09;&#xff0c;所以想通过fmpeg来将flv文件转换为H264AAC。 一、MacOS环境 博主的MacOS环境&#xff08;…...

docker部署nginx并配置https

1.准备SSL证书&#xff1a; 生成私钥&#xff1a;运行以下命令生成一个私钥文件。 生成证书请求&#xff08;CSR&#xff09;&#xff1a;运行以下命令生成证书请求文件。 生成自签名证书&#xff1a;使用以下命令生成自签名证书。 openssl genrsa -out example.com.key 2048 …...

五一小长假,景区智慧公厕发挥了那些作用?

五一小长假已经过去&#xff0c;在旅途中相信大家非常开心&#xff0c;其中也不乏一些细节让你有了更好的体验&#xff0c;而在您享受美景、畅游风光的同时&#xff0c;或许并未留意到那个角落里&#xff0c;默默为您服务的智慧公厕。是的&#xff0c;它们将成为您旅途中不可或…...

Spring - 9 ( 10000 字 Spring 入门级教程 )

一&#xff1a; MyBatis XML 配置文件 Mybatis 的开发有两种方式&#xff1a; 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…...

shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)

目录 一、GeoJSON是什么 二、GeoJSON的结构组成 2.1、点&#xff08;Point&#xff09;数据示例 2.2、线&#xff08;LineString&#xff09;数据示例 2.3、面&#xff08;Polygon&#xff09;数据示例 2.4、特征&#xff08;Feature&#xff09;数据示例 2.5、特征集合&…...

没有强有力的科技支撑,就没有保密工作的高质量发展。新修订的《中华人民共和国保守国家秘密法》在总则中新增保密科技创新有关内容包括()

没有强有力的科技支撑,就没有保密工作的高质量发展。新修订的《中华人民共和国保守国家秘密法》在总则中新增保密科技创新有关内容包括&#xff08;&#xff09; 点击查看答案内容&#xff1a; A.国家鼓励和支持保密科学技术研究和应用B.提升自主创新能力 C.明确依法保护保密领…...

【快速入门】数据库的增删改查与结构讲解

文章的操作都是基于小皮php study的MySQL5.7.26进行演示 what 数据库是能长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合。数据库中的数据按照一定的数据模型存储&#xff0c;具有较小的冗余性&#xff0c;较高的独立性和易扩展性&#xff0c;并为…...

使用AIGC生成软件类图表

文章目录 如何使用 AI 生成软件类图表什么是 MermaidMermaid 的图片如何保存&#xff1f;mermaid.liveDraw.io Mermaid可以画什么图&#xff1f;流程图时序图 / 序列图类图状态图甘特图实体关系图 / ER图 如何使用 AI 生成软件类图表 ChatGPT 大语言模型不能直接生成各类图表。…...

机器学习实践:超市商品购买关联规则分析

第2关&#xff1a;动手实现Apriori算法 任务描述 本关任务&#xff1a;编写 Python 代码实现 Apriori 算法。 相关知识 为了完成本关任务&#xff0c;你需要掌握 Apriori 算法流程。 Apriori 算法流程 Apriori 算法的两个输人参数分别是最小支持度和数据集。该算法首先会生成所…...

自动化图像识别:提高效率和准确性的新途径

自动化图像识别是人工智能领域中的一项关键技术&#xff0c;它通过算法自动解析图像内容&#xff0c;为各种应用提供准确的信息。随着技术的不断发展&#xff0c;自动化图像识别在提高效率和准确性方面展现出新的途径。 一、深度学习技术的应用 深度学习是自动化图像识别领域…...

根据最近拒包项目总结,详细讲解Google最新政策(上)

关于占比最多的移动垃圾软件拒审问题 移动垃圾软件(Mobile Unwanted Software)特征表现1> 具有欺骗性,承诺其无法实现的价值主张。2> 诱骗用户进行安装,或搭载在用户安装的其他程序上。3> 不向用户告知其所有主要功能和重要功能。4> 以非预期方式影响用户的系统…...

【Qt之OpenGL】01创建OpenGL窗口

1.创建子类继承QOpenGLWidget 2.重写三个虚函数 /** 设置OpenGL的资源和状态,最先调用且调用一次* brief initializeGL*/ virtual void initializeGL() override; /** 设置OpenGL视口、投影等&#xff0c;当widget调整大小(或首次显示)时调用* brief resizeGL* param w* para…...

如何判断代理IP质量?

由于各种原因&#xff08;从匿名性和安全性到绕过地理限制&#xff09;&#xff0c;代理 IP 的使用变得越来越普遍。然而&#xff0c;并非所有代理 IP 都是一样的&#xff0c;区分高质量和低质量的代理 IP 对于确保流畅、安全的浏览体验至关重要。以下是评估代理 IP 质量时需要…...

2023-2024年Web3行业报告合集(精选13份)

Web3行业报告&#xff08;精选13份&#xff09; 2023-2024年 来源&#xff1a;2023-2024年Web3行业报告合集&#xff08;精选13份&#xff09; 【以下是资料目录】 2023Web3产业发展现状分析及国内外落地实践报告 2023模块化区块链承载Web3.0应用的新模式 2023年AI应用需求…...

CSS中文本样式(详解网页文本样式)

目录 一、Text介绍 1.概念 2.特点 3.用法 4.应用 二、Text语法 1.文本格式 2.文本颜色 3.文本的对齐方式 4.文本修饰 5.文本转换 6.文本缩进 7.color&#xff1a;设置文本颜色。 8.font-family&#xff1a;设置字体系列。 9.font-size&#xff1a;设置字体大小。…...

tensorflow学习笔记(2)线性回归-20240507

通过调用Tensorflow计算梯度下降的函数tf.train.GradientDescentOptimizer来实现优化。 代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- #程序作用: #线性回归:通过调用Tensorflow计算梯度下降的函数tr.train.GradientDescentOptimizer来实现优化。import os …...

Milk-V Duo开发板深度评测:双核RISC-V Linux系统实战与性能优化

1. 开箱初印象&#xff1a;当“小钢炮”遇上“大算力”刚拿到Milk-V Duo开发板时&#xff0c;我承认我愣了一下。包装盒比常见的信用卡还要小一圈&#xff0c;第一反应是“这怕不是个配件或者核心模块吧&#xff1f;”直到拆开静电袋&#xff0c;这块精致得如同艺术品的开发板本…...

CodeBlocks 20.03 安装与汉化保姆级教程(附中文包下载与常见问题解决)

CodeBlocks 20.03 安装与汉化全流程实战指南 对于刚接触C/C开发的初学者来说&#xff0c;选择一款合适的集成开发环境(IDE)是迈入编程世界的第一步。CodeBlocks以其轻量级、跨平台和开源免费的特性&#xff0c;成为众多教育机构和自学者的首选。本文将带你从零开始&#xff0c;…...

告别Qt默认英文!3分钟搞定QMessageBox按钮中文显示(附完整代码示例)

3分钟实现QMessageBox按钮中文显示的实战指南 刚接触Qt开发的程序员经常会遇到一个尴尬问题——精心设计的界面突然弹出英文按钮的对话框。这种"半中半英"的体验在交付给国内客户时尤为明显。今天我们就来解决这个看似简单却困扰很多开发者的问题&#xff0c;无需复杂…...

第29天:Python发送邮件和短信

Python学习100天(从入门到精通系列文章) 文章目录 Python学习100天(从入门到精通系列文章) 前言 一、发送电子邮件 1.1 电子邮件与 SMTP 协议 1.2 配置邮件服务器 1.3 发送简单邮件 1.4 发送带附件的邮件 1.5 封装邮件发送函数 二、发送短信 2.1 短信发送场景 2.2 调用短信…...

LinkSwift:2025年开源网盘直链下载助手的完整指南

LinkSwift&#xff1a;2025年开源网盘直链下载助手的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

WinSW实战:除了开机自启,这样配置还能监控你的Nacos服务状态与日志

WinSW进阶实战&#xff1a;构建Nacos服务的全方位监控体系 对于许多使用Nacos作为注册中心和配置中心的团队来说&#xff0c;确保其稳定运行是系统可靠性的基石。虽然通过WinSW将Nacos注册为Windows服务并实现开机自启解决了基础问题&#xff0c;但真正的挑战在于服务运行后的状…...

AI 落地精准测试平台:从排障定位、回归决策到智能分析实战课系列导航

本目录沉淀了一套围绕“采集接入、报告分析、治理沉淀、智能运维”展开的教学文章系列。 共 120 篇&#xff0c;适合拆分发布&#xff0c;也适合按专题连续阅读。 AI 落地精准测试平台&#xff1a;从排障定位、回归决策到智能分析实战课 这套系列适合谁 测试工程师&#xff…...

终极指南:vue-fastapi-admin 容器化部署与生产环境配置的10个关键步骤

终极指南&#xff1a;vue-fastapi-admin 容器化部署与生产环境配置的10个关键步骤 【免费下载链接】vue-fastapi-admin ⭐️ 基于 FastAPIVue3Naive UI 的现代化轻量管理平台 A modern and lightweight management platform based on FastAPI, Vue3, and Naive UI. 项目地址:…...

用STM32G431RBT6复刻一个简易示波器+信号发生器:蓝桥杯嵌入式外设综合应用实战

基于STM32G431RBT6的嵌入式示波器与信号发生器开发实战 在嵌入式系统开发领域&#xff0c;将理论知识转化为实际应用能力是每个工程师成长的必经之路。本文将带你使用STM32G431RBT6开发板&#xff0c;从零开始构建一个兼具示波器和信号发生器功能的综合系统。这个项目不仅能够…...

IO杂记I

IO 杂记 一、Selector 与 select() selector.select() 不会创建新线程&#xff0c;而是让当前线程阻塞等待&#xff0c;直到有 I/O 事件就绪。 比喻&#xff1a;一个人站在门口&#xff0c;不来客人就不动。selector.selectNow() 是非阻塞版本&#xff1a;瞥一眼门口&#xff0…...