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

做任务兼职赚钱的网站营销管理系统

做任务兼职赚钱的网站,营销管理系统,深圳最好seo,自做网站目录 0.滑动窗口原理讲解1.长度最小的子数组1.题目链接2.算法原理讲解3.代码实现 0.滑动窗口原理讲解 滑动窗口:“同向双指针”滑动窗口可处理「⼀段连续的区间」问题如何使用? left 0, right 0进窗口判断 是否出窗口 更新结果 -> 视情况而定 可能…

目录

  • 0.滑动窗口原理讲解
  • 1.长度最小的子数组
    • 1.题目链接
    • 2.算法原理讲解
    • 3.代码实现


0.滑动窗口原理讲解

  • 滑动窗口:“同向双指针”
  • 滑动窗口可处理「⼀段连续的区间」问题
  • 如何使用?
    1. left = 0, right = 0
    2. 进窗口
    3. 判断
      • 是否出窗口
    4. 更新结果 -> 视情况而定
      • 可能在出窗口前
      • 可能在进窗口之后
  • 具体原理解析将结合**「长度最小的子数组」**来说明

1.长度最小的子数组

1.题目链接

  • 长度最小的子数组

2.算法原理讲解

  • 此问题分析的对象是**「⼀段连续的区间」,因此可以考虑「滑动窗⼝」**的思想来解决

  • 让滑动窗⼝满⾜

    • i位置开始,窗⼝内所有元素的和⼩于target
    • 当窗⼝内元素之和第⼀次⼤于等于⽬标值的时候,就是i位置开始满⾜条件的最⼩⻓度
  • 做法:

    • 如果窗⼝sum >= target
      • 更新结果,并且将左端元素划出去的同时继续判断是否满⾜条件并更新结果
        • 因为左端元素可能很⼩,划出去之后依旧满⾜条件
    • 如果窗⼝sum不满⾜条件:
      • right++,让下⼀个元素进⼊窗⼝
        请添加图片描述
  • 为何滑动窗⼝可以解决问题,并且时间复杂度更低?

    • 这个窗⼝寻找的是:以当前窗⼝最左侧元素(记为left1)为基准,符合条件的情况
      • 即:从left1开始,满⾜sum >= target时的最右侧(记为right1)能到哪⾥
    • 既然已经找到从left1开始的最优的区间,那么就可以⼤胆舍去left1
      • 但是如果继续像暴力求解⽅法⼀样,重新开始统计第⼆个元素(left2)往后的和,势必会有⼤量重复的计算
        • 因为在求第⼀段区间的时候,已经算出很多元素的和了,这些和是可以在计算下次区间和的时候⽤上的
    • 此时,rigth1的作⽤就体现出来了,只需将left1这个值从sum中剔除
      • right1这个元素开始,往后找满⾜left2元素的区间
        • 此时right1也有可能是满⾜的,因为left1可能很⼩,sum剔除掉left1之后,依旧满⾜⼤于等于 target
    • 这样就能省掉⼤量重复的计算
    • 总结:利用单调性,规避了很多没有必要的枚举行为
      • 此处的单调指滑动窗口内sum的单调性,而不是数组原始数据的单调性
  • 时间复杂度 O ( N ) O(N) O(N)

    • 虽然代码是两层循环,但是left指针和right指针都是不回退的,两者最多都往后移动n

3.代码实现

int MinSubArrayLen(int target, vector<int>& nums) 
{int sum = 0, len = INT_MAX;for(int left = 0, right = 0; right < nums.size(); right++){sum += nums[right]; // 进窗口while(sum >= target) // 判断{len = min(len, right - left + 1); // 更新结果sum -= nums[left++]; // 出窗口}}return len == INT_MAX ? 0 : len;
}
http://www.hengruixuexiao.com/news/40371.html

相关文章:

  • 做真实3d效果图网站手机软文广告300字
  • 建设网点查询附近网站推广优化的原因
  • 程序员做项目的网站seo服务公司上海
  • 管理网站建设哪家公司好网页搜索优化
  • 专门做外贸网站有哪些代运营一家店铺多少钱
  • 垂直电商网站有哪些seo网站诊断流程
  • 做公司网站用什么系统最常用的网页制作软件
  • 域名到网站上线国际新闻大事
  • 做图的ppt模板下载网站wifi优化大师下载
  • 广东手机网站建设价格低关键词调词平台费用
  • 如何用ad做网站怎么查询百度收录情况
  • b2b网站想申请支付宝借口求好用的seo软件
  • 智能客服人工客服seo常用方法
  • 自己开发一个app需要什么seo站
  • 自学做网站需要学会哪些如何做好推广
  • 网站开发 北京云计算培训费用多少钱
  • 做玻璃钢的企业网站百度小说排行榜第一名
  • 网站建设软著兰州seo技术优化排名公司
  • 专业网站建设服务公司哪家好发外链软件
  • 北京网站设计优刻试分析网站推广和优化的原因
  • 网站建设计划方案cba排名
  • 找人做网站怎么做友情链接qq群
  • 湖南营销型网站建设 干净磐石网络深圳seo招聘
  • 网站建设需要些什么网络推广和运营的区别
  • 某高校门户网站开发案例seo知识总结
  • 互联网是做什么工作的seo短视频网页入口引流网站
  • 保山网站制作浏览器网站进入口
  • 宝安专业网站设计公司网络运营培训
  • 网站防劫持怎么做上海网站推广排名公司
  • 网站快捷按钮以什么方式做上海专业排名优化公司