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

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

题目链接

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

题目解析

有种说法叫做,正难则反。我们直接去按照题目意思去求很难去理解与操作,但是我们换种思想就会简单许多。我们让整个数组的和减去x得到一个target,然后去求该数组中和等于target的最长子串,那么原数组长度减去该最长子串的结果就是答案。

细节问题

有可能该x太大,就算把整个数组的和加起来也没有x大,那么这样就是不符合条件的,因此直接返回-1;

还有一种情况,该数组中根本就没有符合条件的,也直接返回-1; 

代码

class Solution 
{
public:int minOperations(vector<int>& nums, int x) {// 将该题思想转化为 数组之和-x得到的值// 然后去使用滑动窗口思想来去找和等于该值的最长数组的长度// 然后让总数组长度-该值  就得到了我们的答案int n=nums.size();// 对数组求和int sum=0;for(auto&e:nums) sum+=e;// 求出总和-x的值int target=sum-x;// 如果此时x太大了,整个数组的和都没有x大,那么肯定不符合条件if(target<0) return -1;int ret=-1,tmp=0;for(int left=0,right=0;right<n;right++){   tmp+=nums[right];while(tmp>target){tmp-=nums[left];left++;}if(tmp==target) ret=max(ret,right-left+1);}return ret==-1?ret:(n-ret);}
};

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

相关文章:

  • Rasa 3.1 机器学习一构建标准的对话
  • MySQL的概述、版本、安装过程
  • leetcode:58. 最后一个单词的长度
  • Electron 两个线程
  • 基于YOLOv8和WiderFace数据集的人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 《消息队列》专栏介绍
  • 各类工具使用详情【持续更新】
  • docker容器的安装和基础练习
  • WordPress 后台密码忘记后,重置找回密码的 N 种方法
  • 将PyCharm中的终端运行前面的PS修改成当前环境
  • Linux系统编程—socket网络编程
  • 函数指针
  • Linux——进程间信号(超级详解!!)
  • C++ STL库的介绍和使用
  • Excel数学、工程和科学计算插件:FORMULADESK Studio
  • 大规模 Spring Cloud 微服务无损上下线探索与实践
  • 【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
  • C++设计模式_03_模板方法Template Method
  • 【LeetCode-中等题】79. 单词搜索
  • 揭秘iPhone 15 Pro Max:苹果如何战胜三星
  • 分布式秒杀方案--java
  • 高频golang面试题:简单聊聊内存逃逸?
  • 【2023年数学建模国赛C题解题思路】
  • Jenkins+Allure+Pytest的持续集成
  • yo!这里是进程控制
  • 多线程快速入门
  • Redis 7 第七讲 哨兵模式(sentinal)架构篇
  • laravel框架系列(一),Dcat Admin 安装
  • Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)
  • 小节1:Python字符串打印