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

(C++)将x减到0的最小操作数--滑动窗口

个人主页:Lei宝啊 

愿所有美好如期而遇


力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/minimum-operations-to-reduce-x-to-zero/description/

思路:

正常来说,我们需要考虑从哪边相加和为x,并且还要考虑最短,这样的思路光听着就不简单,所以我们采用的方式是求整个数组的大小,减去x得到target,求一段连续的数字和为target,利用双指针,我们一直向后走,在走的同时,我们可以发现left和right只++,没有回退,我们也就确认要使用滑动窗口,也就是进出窗口,判断,以及更新结果。

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

http://www.lryc.cn/news/262966.html

相关文章:

  • 回答某位同学的问题:残差网络常用来分类,可以用于回归预测吗?
  • C语言初学5:运算符
  • 亿某通电子文档安全管理系统任意文件上传漏洞 CNVD-2023-59471
  • 产品入门第四讲:Axure动态面板
  • 【数据结构】哈希表算法总结
  • 微信小程序单图上传和多图上传
  • github入门基础操作
  • Android Studio(3.6.2版本)安装 java2smali 插件,java2smali 插件的使用方法简述
  • vscode使用remote ssh到server上 - Node进程吃满CPU
  • 如何在Go中使用日期和时间
  • 2023_Spark_实验二十九:Flume配置KafkaSink
  • Koa.js 入门手册:洋葱模型插件机制详解以及常用中间件
  • 零信任 SASE 办公安全解决方案:提升企业网络安全与灵活性
  • 【提示工程】Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
  • AWS解决方案架构师学习与备考
  • 如何搭建企业管理系统Odoo并远程访问管理界面【内网穿透】
  • 【Git】git常用问题汇总
  • 2024免费mac苹果电脑系统电脑管家CleanMyMac X
  • ElasticSearch详细搭建以及常见错误high disk watermark [ES系列] - 第497篇
  • ADB:获取坐标
  • 关于“Python”的核心知识点整理大全27
  • 实验三 MapReduce编程
  • element组件库的日期选择器如何限制?
  • QSqlQueryModel
  • docker-compose介绍和用法
  • Mac下ERROR: Cannot connect to the Docker daemon
  • 本地项目添加到gitlab命令操作
  • t-io 程序执行后,jvm不退出的原因
  • Vue3使用Three.js导入gltf模型并解决模型为黑色的问题
  • 说一下 jvm 有哪些垃圾回收算法?