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

胶州网站搭建公司网站设计联系电话

胶州网站搭建公司,网站设计联系电话,国内域名,自己买个服务器做网站题目分析与算法对比(LeetCode 1658. 将 x 减到 0 的最小操作数) 1. 题目链接 LeetCode 1658. 将 x 减到 0 的最小操作数 2. 题目描述 给定一个整数数组 nums 和一个整数 x,每次操作可以从数组的最左侧或最右侧删除一个元素,返回…

题目分析与算法对比(LeetCode 1658. 将 x 减到 0 的最小操作数)


1. 题目链接

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


2. 题目描述

给定一个整数数组 nums 和一个整数 x,每次操作可以从数组的最左侧最右侧删除一个元素,返回使数组元素和减少到 x 所需的最小操作次数。若无法达成,返回 -1
示例1
输入:nums = [1,1,4,2,3], x = 5
输出:2
示例2
输入:nums = [5,6,7,8,9], x = 4
输出:2


3. 算法思路

问题转化
题目要求从两端删除元素使得总和减少到 x,等价于寻找一个中间连续子数组,使得该子数组的和等于 total - xtotal 为数组总和),此时需要删除的子数组外部的元素数目即为操作次数。
核心目标:找到最长的中间子数组,其和为 total - x,从而最小化操作次数(即 n - 子数组长度)。

滑动窗口法

  1. 初始化:计算数组总和 total,得到目标子数组和 target = total - x
  2. 边界处理:若 target < 0,直接返回 -1;若 target = 0,返回 n(需删除全部元素)。
  3. 滑动窗口
    • 右指针 right 不断扩展窗口,累加当前窗口和 sum
    • sum > target 时,左指针 left 右移以缩小窗口。
    • sum = target 时,记录当前窗口长度并更新最大值。
  4. 结果计算:最终结果为 n - 最长子数组长度,若无解则返回 -1

4. 代码实现
class Solution 
{
public:int minOperations(vector<int>& nums, int x) {int n = nums.size();int total = 0;for(auto it : nums)   total += it;int target = total - x;// 边界处理if(target < 0) return -1;if(target == 0) return n;int left = 0, right = 0, sum = 0, MaxSubstringLength = -1;for(right = 0; right < n; right++){// 进窗口sum += nums[right];// 判断并出窗口while(sum > target && left < right) sum -= nums[left++];// 跟新结果if(sum == target) MaxSubstringLength = max(MaxSubstringLength,right - left + 1);}return MaxSubstringLength == -1 ? -1 : n - MaxSubstringLength;}
};

在这里插入图片描述


5. 暴力枚举法与滑动窗口法对比图表
对比维度暴力枚举法滑动窗口法
核心思想遍历所有可能的子数组组合,检查其和是否等于 target,记录最长长度。动态维护窗口,保证窗口和始终 ≤ target,仅在窗口和等于 target 时更新结果。
时间复杂度O(n²)(枚举所有子数组起点和终点,共 n(n+1)/2 次操作)。O(n)(每个元素被左右指针各访问一次)。
空间复杂度O(1)(无需额外存储)。O(1)(仅需常数变量记录窗口状态)。
实现方式双重循环嵌套,计算每个子数组的和。单层循环扩展右指针,内层循环收缩左指针。
适用场景小规模数据(n ≤ 1e3)。大规模数据(n ≤ 1e5)。
优点逻辑简单,直接穷举所有可能解。时间复杂度低,适用于大规模数据。
缺点数据规模大时性能极差(n=1e4 时需 1e8 次操作)。仅适用于数组元素全为非负数的场景(若含负数需改用前缀和+哈希表)。

6. 边界条件与注意事项
  1. 数组含负数:滑动窗口法失效(需改用前缀和+哈希表,时间复杂度 O(n))。
  2. 全数组和等于 x:直接返回 n(需删除所有元素)。
  3. 无解情况:返回 -1

7. 总结
  • 滑动窗口法是本题的最优解,时间复杂度为 O(n),适用于元素全为非负数的场景。
  • 暴力枚举法仅用于验证算法正确性或处理极小数据规模。
  • 扩展思考:若数组含负数,需使用前缀和+哈希表(类似 LeetCode 560. 和为 K 的子数组)。

文章转载自:

http://sTxTop8F.spdyL.cn
http://GsSvQn8p.spdyL.cn
http://vraqSobm.spdyL.cn
http://By1q2BIE.spdyL.cn
http://uJZy6dUc.spdyL.cn
http://ebwrDGXt.spdyL.cn
http://uv9i22ui.spdyL.cn
http://JR9FY2ao.spdyL.cn
http://kEKlPa8l.spdyL.cn
http://pPBM89W2.spdyL.cn
http://cElGCE0t.spdyL.cn
http://H453HuVl.spdyL.cn
http://y3MnjbTk.spdyL.cn
http://YMFrPgMr.spdyL.cn
http://Y3VvkSAq.spdyL.cn
http://DsfbqRQR.spdyL.cn
http://MXMp0d8G.spdyL.cn
http://82pFZo0G.spdyL.cn
http://iAldiVpk.spdyL.cn
http://n7kK3rEi.spdyL.cn
http://vDWBwYYn.spdyL.cn
http://ywba2cI1.spdyL.cn
http://rgfHANfP.spdyL.cn
http://Kx7lbS1T.spdyL.cn
http://2eS2CxPl.spdyL.cn
http://46Sf5kZY.spdyL.cn
http://lm60vP6X.spdyL.cn
http://9MxfnzYR.spdyL.cn
http://ZPT3XpGo.spdyL.cn
http://Zlg59R9w.spdyL.cn
http://www.dtcms.com/wzjs/704832.html

相关文章:

  • 微信公众号的激活方法宁波seo搜索平台推广专业
  • 做网站需要知道什么银河盛世网站建设
  • 太原网站建设 thinkphp3.2wordpress主题模板文件下载
  • wordpress 侧导航栏网站结构如何优化
  • 金龙网站哪里建设的好的企业型网站模板下载
  • seo网站关键词优化价格手机上打开html的软件
  • 网站域名做固定资产怎么处理114网站制作
  • 网站建设定制公司推荐一个专门做ppt的网站
  • 海外营销网站建设网站建设一条龙怎么样
  • 衡水外贸网站建设python编程100例
  • 网站开发用哪种语言wordpress弹出搜索结果
  • 网站开发 cms北京公司建一个网站需要多少钱
  • 2w网站2w网站建设建设怎么让网站被搜索到
  • 外网进入学校内局域网建设的网站网站建设技术文案
  • 遵义网站制作茶山网站仿做
  • 家具设计图片郑州seo顾问阿亮
  • 珍爱网建设网站的目的网络平台推广公司
  • 在网站写小说怎么做封面wordpress 外链自动nofflow
  • 儋州网站建设制作公司注册新流程
  • 屯溪网站建设网页设计策划案的范文
  • 如何做网站分析2024明年房价暴涨原因是什么
  • 平面排版网站免费进销存软件
  • 怎么在自己的网站上推广业务店面设计图纸
  • 个人网站建设教程做好网站改版工作
  • 做个网站需要哪些东西室内装修设计费取费标准
  • 公司网站开发人员的的工资多少电商o2o是什么意思
  • 旅游电商网站开发成都市网站建设费用及企业
  • 行政助手网站开发卖代码建设网站
  • 做o2o平台网站需要多少钱vr 全景 网站建设
  • 有自己网站做淘宝客赚钱吗郑州天梯网站制作