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

阿里巴巴网站威海哪里做?常州百度推广代理

阿里巴巴网站威海哪里做?,常州百度推广代理,最专业的营销网站建设公司排名,北京新机场建设网站题目: 这个题如果我们直接去思考方法是很困难的,因为我们不知道下一步是在数组的左还是右操作才能使其最小。正难则反,思考一下,无论是怎么样的,最终这个数组都会分成三个部分左中右,而左右的组合就是我们…

题目:

这个题如果我们直接去思考方法是很困难的,因为我们不知道下一步是在数组的左还是右操作才能使其最小。正难则反,思考一下,无论是怎么样的,最终这个数组都会分成三个部分左中右,而左右的组合就是我们进行的所有操作(极端情况下左或右长度为0),但不管怎样,都分成了连续的几块。左右之和若为x,那么中间的数组和就是sum-x(假设数组之和为sum),我们要找左右长度和最短,那么只要找中间数组最长即可。

具体思路:

定义同向双指针,然后“进窗口”,判断(sum是否>target,此处的sum是滑动窗口内之和,target是上面的sum-x),如果满足条件,则出窗口,然后更新结果,判断此时的sum是否=target,符合条件,记录长度,然后一次次取最大值

 

int Solution(vector<int>&nums,int x)
{int sum=0;for(a:nums) sum+=a;int target=sum-x;//如果if条件满足,则我减去所有的数都无法满足条件if(target<0) return -1;
int ret=-1;for(int left=0,right=0,tmp=0;right<nums.size();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 nums.size()-ret;
}

http://www.dtcms.com/wzjs/186153.html

相关文章:

  • 756ka网站建设郑州seo技术培训班
  • 比较好的能组数学卷的网站做教案的百度联盟怎么加入赚钱
  • 装饰网站案例友情链接互换
  • 怎么登陆自己的公司网站徐州网站建设方案优化
  • 西宁做网站的公司捌君博力请重庆网站推广
  • 网站开发wbs分解案例北京网站快速优化排名
  • 网站免费在线客服系统google下载官方版
  • 3000ok新开传奇网站公益服关键词优化价格
  • 自适应网站做mip改造武汉seo网站排名优化
  • 软件大全免费下载深圳seo优化公司排名
  • 网站建设开发费怎么做账企业推广语
  • 衢江网站建设附子seo
  • 诗词门户网站深圳市推广网站的公司
  • 影视网站wordpress网络销售每天做什么
  • 为什么选择做汉服网站百家港 seo服务
  • 热血传奇seo的基础优化
  • 秦皇岛手机网站制作价格汕头seo排名收费
  • 网站空间域名费软文范例500字
  • 南京企业微信网站建设湖北seo服务
  • 网站作业二级网页怎么引流推广
  • 哪家做网站比较好管理培训
  • 设计之家下载google搜索优化
  • 网站建设的3个基本原则菏泽百度推广公司电话
  • 有限责任公司优缺点电脑优化软件
  • 网站开发建设需要什么本地推广平台有哪些
  • 罗湖建设网站google chrome 网络浏览器
  • 网站建设咨询电话seo短视频网页入口
  • 网站程序语言深圳小程序建设公司
  • 北京建设信息网站网站老域名跳转到新域名
  • 品牌产品网站怎么做seo技术306