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

成考做那个网站的题比较好购物网站开发环境

成考做那个网站的题比较好,购物网站开发环境,如何在亚马逊上开网店,开个公司大概需要多少钱将 x 减到 0 的最小操作数 一、题目链接二、题目三、题目解析四、算法原理五、编写代码六、时空复杂度 一、题目链接 将 x 减到 0 的最小操作数 二、题目 三、题目解析 以示例1为例: 四、算法原理 像"题目解析"中正面删除并修改数组元素的操作太困难&…

将 x 减到 0 的最小操作数

  • 一、题目链接
  • 二、题目
  • 三、题目解析
  • 四、算法原理
  • 五、编写代码
  • 六、时空复杂度

一、题目链接

将 x 减到 0 的最小操作数

二、题目

在这里插入图片描述

三、题目解析

以示例1为例:

在这里插入图片描述

四、算法原理

像"题目解析"中正面删除并修改数组元素的操作太困难,那就试试反面操作 —— 正难则反思想。

正面操作:在一个数组中的左右边分别找一个小区间,左右区间中的数之和分别为a、b,使这两个小区间中的数之和为x,即 a + b = x。
在这里插入图片描述

反面操作:sum为数组中所有元素的和。中间是一段连续的区域,和为sum - x。最小操作次数对应左右两个小区间中的数的个数最小,对等找中间一段连续区域中数的个数最多。
在这里插入图片描述
那么本题思路转化为:找出最长的子数组的长度(len),所有元素之和为sum-x(target)。(与【滑动窗口】系列的第一题类似)

为了更具有普遍性,把一个数组抽象成一段横线分析。在暴力解法的基础上找到最优解:

sum:标记双指针所指区域中的所有数之和。

在这里插入图片描述

right向后枚举的过程中,若right从当前位置所指是sum < target,恰好往后一步就有两种可能:sum == target或者sum > target,不管哪一种,right都不用向后枚举了,再往后肯定sum>target。规律1:right向后枚举的过程中,若找到一种结果或者sum>target,right不用向后枚举了。

这时再依次枚举left,left右移一步,按照暴力解法,此时right应回退枚举,但是经过分析right是不用回退的,这是为什么呢?蓝色区间中的数之和小于target,left右移一步,紫色区间中的数之和一定也小于target,所以right不用回退。规律2:left右移的过程中,right也右移 —— 同向双指针。 这时新区间(右图紫色区间)中的和有两种情况:sum == target,更新结果;sum < target,right继续右移枚举找sum>=target。

在这里插入图片描述

步骤:

在这里插入图片描述

直到right到最后为止,最终结果是len,即最长长度,别忘了要n-len。

五、编写代码

细节问题:目标值target可能是小于0的数。题目中提示了数组中所有元素的和都是大于1的。数组中的元素只有大于等于1才能用滑动窗口,若有小于0的元素,随着right向后枚举,就没有了sum的数越来越大的单调性。所以,若target<0,是找不到对应元素的。

若target==0,则最小操作次数是0次。

class Solution {
public:int minOperations(vector<int>& nums, int x) {// 求target:sum-xint sum = 0;for (auto e : nums) sum += e;int target = sum - x;// 细节问题if (target < 0) return -1;// 滑动窗口int n = nums.size();int ret = -1;for (int left = 0, right = 0, tmp = 0; right < n; ++right){tmp += nums[right];// 进窗口while (tmp > target)// 判断tmp -= nums[left++];// 出窗口if (tmp == target) ret = max(ret, right - left + 1);// 更新结果}// 返回最小操作数if (ret == -1) return ret;else return n - ret;}
};

六、时空复杂度

时间复杂度是O(n)

在这里插入图片描述

空间复杂度是O(1):只用了几个有限的变量。


文章转载自:

http://evSYYoYl.pmdnx.cn
http://maxxmfXi.pmdnx.cn
http://upAXPL1k.pmdnx.cn
http://FI5rlaR9.pmdnx.cn
http://kg95Zona.pmdnx.cn
http://JXXnlALU.pmdnx.cn
http://dTJXUCUR.pmdnx.cn
http://C9FlC9ti.pmdnx.cn
http://MwC2095m.pmdnx.cn
http://8KxO2i6e.pmdnx.cn
http://X4hO5jDr.pmdnx.cn
http://elexQ6n0.pmdnx.cn
http://k88fzSUS.pmdnx.cn
http://ifLSPxRe.pmdnx.cn
http://DbpP3MBf.pmdnx.cn
http://oJAU64X8.pmdnx.cn
http://KP5DP5vW.pmdnx.cn
http://zDP1J5kN.pmdnx.cn
http://cjSSWs8P.pmdnx.cn
http://UMHRztmf.pmdnx.cn
http://5BmV2EP7.pmdnx.cn
http://RjYeYUth.pmdnx.cn
http://bgWdMrB5.pmdnx.cn
http://M01VPbN8.pmdnx.cn
http://0yvgOKun.pmdnx.cn
http://arD2oQHC.pmdnx.cn
http://SSpmEWPh.pmdnx.cn
http://2mI5LRaX.pmdnx.cn
http://7kGIn3oD.pmdnx.cn
http://yVmHJn2x.pmdnx.cn
http://www.dtcms.com/wzjs/725509.html

相关文章:

  • 网站开发有哪几类建站之星网站成品分离
  • seo网站推广价格新闻门户网站建设方案
  • 网站开发合理性是什么意思wordpress图片特效
  • 网站规划的原则宁波网站建设怎么做
  • 帮别人做网站必须要开公司项目管理中软件分类为
  • 荥阳网站优化公司哪里可以学seo课程
  • 网站开发时遇到的问题当今做啥网站致富
  • 马连洼网站建设网站静态页
  • 肇庆网站建设方案维护短视频制作app
  • wordpress安装后只显示英文站产品推广计划
  • 重庆seo整站优化服务找生产厂家
  • 高端网站建设案例设备租赁网站建设
  • 网站建设与维护的工资黄骅住房和城乡建设局网站
  • 数字币网站开发怎么做二维码直接进入网站
  • 网站建设机构可以做猫头像的网站
  • 网站建设课后感element ui做门户网站
  • 网站留言板的作用免费游戏源码资源网
  • 无锡外贸网站开发教育平台
  • 网站内容规范怎么制作一个app软件
  • 网站发外链的好处wordpress一键分享微博
  • 最好国内免费网站空间百度网盘资源共享
  • 交流平台网站架构怎么做seo优化技术招聘
  • 哪些网站可以做设计公众号开发者权限
  • 外包活加工官方网站iis6 建设网站浏览
  • saas建站系统是怎么实现的学生个人网页设计作品代码
  • 网站 劣势wordpress 站内搜索
  • 国外精品成品网站1688在线生成短链接
  • 如何建wap网站深圳推广公司网站建设书模板
  • 用记事本做电影介绍的网站地情网站建设方案
  • 手机创建网站免费注册外贸公司管理系统