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

海口模板建站公司微信推广员

海口模板建站公司,微信推广员,做ppt的网站有哪些内容,金华网站制作企业题目#xff1a;长度最小的子数组 描述#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] #xff0c;并返回其长度。如果不存在符合条件的子数组长度最小的子数组 描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] 并返回其长度。如果不存在符合条件的子数组返回 0 。 示例 1 输入target 7, nums [2,3,1,2,4,3] 输出2 解释子数组 [4,3] 是该条件下的长度最小的子数组。 leetcode链接 方法一滑动窗口 滑动窗口有两种一种是固定大小的窗口另一种是动态大小的窗口而本题要求长度最小的子数组所以应该用动态大小的窗口滑动窗口基于双指针的思想 我们定义两个指针left和right表示窗口的两端定义一个minLen变量表示最端短的长度初始时指针都指向0此时如果窗口内的数之和小于目标数target那么right指针右移窗口变大相反如果窗口内的数之和大于目标数target那么更新minLen,并且移动left指针直到窗口内的数之和小于目标数target为止。最后遍历完数组minLen即为长度最小的子数组 时间复杂度o(n) 空间复杂度o(1) int minSubArrayLen(int target, vectorint nums) {int n nums.size();int minLen n1;int left 0,right 0;int sum 0;while(rightn){sumnums[right];while(sumtarget){minLen min(minLen,right-left1);sum-nums[left];left;}right;}//如果minLen没有更新过即为不存在满足条件的子数组返回0return minLenn1?0:minLen;}方法二暴力法 我们枚举数组中的每一个元素为子数组的起始元素然后找到从枚举的元素开始满足条件的最小子数组的长度再维护最小的子数组长度即可找到答案。 时间复杂度o(n²) 空间复杂度o(1) int minSubArrayLen(int s, vectorint nums) {int n nums.size();if (n 0) {return 0;}int ans INT_MAX;for (int i 0; i n; i) {int sum 0;for (int j i; j n; j) {sum nums[j];if (sum s) {ans min(ans, j - i 1);break;}}}return ans INT_MAX ? 0 : ans;}方法三前缀和二分查找 暴力法中枚举子数组起始元素的时间复杂度为o(n),找到最小子数组的时间复杂度为o(n),此时我们考虑优化寻找最小子数组的时间注意到我们给定的数组的所有的元素都是大于0的那么我们每一个元素的前缀和都是递增的因此我们可以利用二分查找来查找最小子数组如果我们枚举第i个元素为最小子数组的起始元素那么我们二分查找的元素可以变为targeti的前缀和而此时找到的目标元素的前缀和-i的前缀和 target因此我们找到的元素即为最短子数组的末尾然后我们再维护最短的一个长度 时间复杂度o(nlogn) 二分查找的时间复杂度为logn 空间复杂度o(n) 存储前缀和的空间为o(n) 注意注意二分查找时的left和right指针的取值 int minSubArrayLen(int target, vectorint nums) {int n nums.size();int minLen n1,mid 0;vectorint sum(n1,0);//sum[i]表示前i个数之和 for(int i1;in;i){sum[i] sum[i-1]nums[i-1];}for(int i1;in;i){//枚举每个元素为子数组的起始元素//注意i为第i个元素而第i个元素的下标为i-1int tag targetsum[i-1];//这里的left和right表示的为第几个元素由于sum[i]为第i个元素的前缀和int left i,right n;while(leftright){mid (leftright)/2;if(tagsum[mid]){left mid1;}else{//我们要找的数为大于等于tag所以rightmid而不是mid-1right mid;}}if(sum[left]tag){minLen min(left-i1,minLen);}}return minLenn1?0:minLen; }
http://www.hkea.cn/news/14535562/

相关文章:

  • 自己做的网页怎么上传网站培训学校机构
  • 网站设计网站浏览做网站资源知乎
  • 网站设计尺寸规范收录优美图片官网
  • 站长素材音效网个人网站域名名字
  • 个人建什么网站比较好网站需求报告怎么写
  • 东莞互联网营销网站建设西安网络公司排名
  • 如何撤销网站上信息怎么做家庭网站
  • 网站版权文字wordpress 流量数据
  • 网站设计建议怎么制作一个团购小程序
  • 陕西做网站的必应站长平台
  • 广州广州网站建设公司公司网站建设建设
  • 营销公司网站中山做网站公司
  • 大连商城网站建设网页版qq音乐登录入口
  • 甘肃建设厅网站官网职业院校专题建设网站
  • 南山网站建设深圳信科中国建筑集团有限公司有几个局
  • 网站建设软件kan外贸seo关键词
  • 做网站简单吗装修全包报价明细表2021
  • wordpress网站无法登陆软件工程属于哪个大类
  • 做英文简历的网站网络营销有哪些例子
  • 网站建设流程书籍crm系统公司有哪些
  • 网站开发证网站生成
  • 会简单的网站建设vi设计是设计什么
  • 国人在线做网站做网站的收益在哪
  • 网站建设多久学会网站维护需要什么
  • asp.net jsp 网站cms做网站容易不
  • 个人工作室网站焦作app网站建设
  • 怎样健网站公司邮箱怎么注册流程
  • 帮客户做网站内容如何学习做网站
  • 南京网站制作千网站模版怎么编辑器
  • 北京网站建设制作哪家公司好惠城营销网站制作