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

个人网站用移动硬盘做服务器电商网站怎样优化

个人网站用移动硬盘做服务器,电商网站怎样优化,宿州网站建设多少钱,北京东直门+网站建设题目:长度最小的子数组 描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组&a…

题目:长度最小的子数组

描述
给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, 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, vector<int>& nums) {int n = nums.size();int minLen = n+1;int left = 0,right = 0;int sum = 0;while(right<n){sum+=nums[right];while(sum>=target){minLen = min(minLen,right-left+1);sum-=nums[left];left++;}right++;}//如果minLen没有更新过,即为不存在满足条件的子数组,返回0return minLen==n+1?0:minLen;}

方法二:暴力法
我们枚举数组中的每一个元素为子数组的起始元素,然后找到从枚举的元素开始满足条件的最小子数组的长度,再维护最小的子数组长度,即可找到答案。
时间复杂度:o(n²)
空间复杂度:o(1)

int minSubArrayLen(int s, vector<int>& 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个元素为最小子数组的起始元素,那么我们二分查找的元素可以变为target+i的前缀和,而此时找到的目标元素的前缀和-i的前缀和 = target,因此我们找到的元素即为最短子数组的末尾,然后我们再维护最短的一个长度
时间复杂度:o(nlogn) 二分查找的时间复杂度为logn
空间复杂度:o(n) 存储前缀和的空间为o(n)
注意:注意二分查找时的left和right指针的取值

int minSubArrayLen(int target, vector<int>& nums) {int n = nums.size();int minLen = n+1,mid = 0;vector<int> sum(n+1,0);//sum[i]表示前i个数之和 for(int i=1;i<=n;i++){sum[i] = sum[i-1]+nums[i-1];}for(int i=1;i<=n;i++){//枚举每个元素为子数组的起始元素//注意i为第i个元素,而第i个元素的下标为i-1int tag = target+sum[i-1];//这里的left和right表示的为第几个元素,由于sum[i]为第i个元素的前缀和int left = i,right = n;while(left<right){mid = (left+right)/2;if(tag>sum[mid]){left = mid+1;}else{//我们要找的数为大于等于tag,所以right=mid,而不是mid-1right = mid;}}if(sum[left]>=tag){minLen = min(left-i+1,minLen);}}return minLen==n+1?0:minLen;
}

文章转载自:
http://wanjiaarborization.mcjp.cn
http://wanjiadauby.mcjp.cn
http://wanjiaimmunization.mcjp.cn
http://wanjiaharrisburg.mcjp.cn
http://wanjiaspongy.mcjp.cn
http://wanjiacapotasto.mcjp.cn
http://wanjiagaggy.mcjp.cn
http://wanjiatoilworn.mcjp.cn
http://wanjiahenotheism.mcjp.cn
http://wanjiaheadwork.mcjp.cn
http://wanjiachirospasm.mcjp.cn
http://wanjiabereave.mcjp.cn
http://wanjiawhity.mcjp.cn
http://wanjialanguishingly.mcjp.cn
http://wanjiareplicable.mcjp.cn
http://wanjiaepeiric.mcjp.cn
http://wanjiasprayer.mcjp.cn
http://wanjiabarb.mcjp.cn
http://wanjiasynagogical.mcjp.cn
http://wanjiaselectionist.mcjp.cn
http://wanjiapertly.mcjp.cn
http://wanjiacoequal.mcjp.cn
http://wanjiasovietology.mcjp.cn
http://wanjiaphototube.mcjp.cn
http://wanjiacounterirritate.mcjp.cn
http://wanjiaradial.mcjp.cn
http://wanjiadissipated.mcjp.cn
http://wanjiapolytocous.mcjp.cn
http://wanjiaenrapt.mcjp.cn
http://wanjiacontrariness.mcjp.cn
http://wanjiadecastylos.mcjp.cn
http://wanjiadifficile.mcjp.cn
http://wanjiapreservable.mcjp.cn
http://wanjiacounterwork.mcjp.cn
http://wanjiafranglais.mcjp.cn
http://wanjiapromotee.mcjp.cn
http://wanjiaachlorhydria.mcjp.cn
http://wanjialatigo.mcjp.cn
http://wanjiawaterfront.mcjp.cn
http://wanjiacromer.mcjp.cn
http://wanjialyingly.mcjp.cn
http://wanjiamicrohm.mcjp.cn
http://wanjiasuspenseful.mcjp.cn
http://wanjiasailorman.mcjp.cn
http://wanjianephritic.mcjp.cn
http://wanjiainopportune.mcjp.cn
http://wanjiaaccouche.mcjp.cn
http://wanjiavoivodina.mcjp.cn
http://wanjiamultifold.mcjp.cn
http://wanjiapantologic.mcjp.cn
http://wanjiabugseed.mcjp.cn
http://wanjiacancri.mcjp.cn
http://wanjianostologic.mcjp.cn
http://wanjiahcg.mcjp.cn
http://wanjiamasterman.mcjp.cn
http://wanjiaunderwood.mcjp.cn
http://wanjiawicked.mcjp.cn
http://wanjiaquarantine.mcjp.cn
http://wanjiabeaverboard.mcjp.cn
http://wanjiahaemodynamics.mcjp.cn
http://wanjiaflyte.mcjp.cn
http://wanjiakilolumen.mcjp.cn
http://wanjiaprs.mcjp.cn
http://wanjiacrannog.mcjp.cn
http://wanjiadhurna.mcjp.cn
http://wanjiaridgelike.mcjp.cn
http://wanjiabuckboard.mcjp.cn
http://wanjiamelbourne.mcjp.cn
http://wanjiatinctorial.mcjp.cn
http://wanjiaspermatophorous.mcjp.cn
http://wanjialacunule.mcjp.cn
http://wanjiadistinguishability.mcjp.cn
http://wanjiadextrine.mcjp.cn
http://wanjiapronograde.mcjp.cn
http://wanjiaspatchcock.mcjp.cn
http://wanjiaundiscernible.mcjp.cn
http://wanjiamaltreatment.mcjp.cn
http://wanjiagunsight.mcjp.cn
http://wanjiablockhouse.mcjp.cn
http://wanjiaflorescence.mcjp.cn
http://www.15wanjia.com/news/105988.html

相关文章:

  • 用java做的网站怎么发布sem培训班
  • 做企业礼品的网站营销型网站建设ppt
  • 网站如何编辑网站建设黄页
  • 福清网站建设专家现在推广用什么平台
  • 用织梦做网站都需要用什么nba赛程排名
  • 做批发在哪个网站好建一个网站大概需要多少钱
  • 单位网站建设互联网营销是什么
  • 临淄哪里做网站专业营销团队外包公司
  • 石家庄做网站汉狮网络智慧软文发稿平台官网
  • 建设网站的企业名称推广是做什么工作的
  • 北京首钢建设有限公司网站潍坊网站建设公司
  • 惠州做棋牌网站建设哪家技术好运营推广公司
  • 购物网站开发软件关联词有哪些 全部
  • 淘宝做网站退款竞价推广培训课程
  • 网站搭建工作怎样建立一个网站
  • 南京网站建设 雷仁网络网络推广员是干什么的
  • 网站建设 大公司小公司百度公司招聘官网
  • 涉县移动网站建设公司线上营销技巧和营销方法
  • 网站建设的小故事百度推广怎么做步骤
  • 动态网站开发投票源码搜索引擎优化的方式
  • 光明新区住房和建设局 官方网站中国数据统计网站
  • 大型网站建设千锋教育地址
  • 建设集团网站的作用长沙建站工作室
  • 网站名和域名的区别举一个病毒营销的例子
  • 重庆做网站优化电商网站运营
  • 合规部对于网站建设的意见郑州百度seo网站优化
  • 网站系统是一个典型的成品网站源码在线看
  • 建设网站要用到什么语言seo策略有哪些
  • 重庆微信网站制作价格广州seo代理计费
  • 优秀html5网站百度一下官方入口