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

网站制作和如何推广asp.netmvc 做网站

网站制作和如何推广,asp.netmvc 做网站,wordpress媒体库查询页,简单的网站源码目录 一、力扣209——长度最小的子数组 二、力扣003——无重复字符的最长子串 三、力扣1004——最大连续的1的个数 四、力扣1658——将x减到0的最小操作数 一、力扣209——长度最小的子数组 题目如下: 该题给出了一个数字,让我们在数组里找到一个连续…

目录

一、力扣209——长度最小的子数组

二、力扣003——无重复字符的最长子串

三、力扣1004——最大连续的1的个数

四、力扣1658——将x减到0的最小操作数


一、力扣209——长度最小的子数组

题目如下:

该题给出了一个数字,让我们在数组里找到一个连续的数组内元素相加等于该数字,并且这个数组要最小。

我们这题可以用两个双指针思想,我们让right指针不断遍历该数组,定义一个sum,sum+=nums[right],right不断又移,如果sum>target,说明left和right所在的这个区间所有的值相加大于target,这个时候left再右移一位。

这个算法思想是不是很熟悉,没错,就是滑动窗口。双指针同向运动。

具体滑动如下

right遍历整个数组,sum不断加上right所指向的数

完整代码如下:

class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int left = 0;int right = 0;int size = nums.size();int sum = 0;int cnt = INT_MAX;while(right < size){sum += nums[right];while(sum >= target){cnt = std::min(cnt,right - left + 1);sum -= nums[left++];}right++;}if(cnt == INT_MAX) return 0;return cnt;}
};

这里要注意这种情况。

如果right遍历整个数组,cnt还是INT_MAX值的话,就说明sum从未>=target,所以此时返回0就可以。

二、力扣003——无重复字符的最长子串

这道题寻找的是最长无重复的字符串,根据示例我们能读懂题意

这里我们可以用hash记录重复的字符串,并用滑动窗口的思想不断遍历这个字符串

right不断遍历,并把right指向的字符记录在hash中,当遇到图上的情况,此时hash中的‘a'字符存在2次,说明这个窗口内有重复的字符,此时的left右移一位,并且更新这个窗口内的字符串的数量

right不断遍历,知道遇到最后一个字符

代码如下:

class Solution {
public:int lengthOfLongestSubstring(string s) {int hash[128] = {0};int left = 0,right = 0;int size = s.size();int cnt = 0;while(right < size){hash[s[right]]++;while(hash[s[right]] > 1)hash[s[left++]]--;cnt = std::max(cnt,right - left + 1);right++;}return cnt;}
};

这里我们用的是数组代替hash,如果直接用uordered_map会使消耗增大,降低效率。

三、力扣1004——最大连续的1的个数

题目如下:

这道题的题意指的是给一个整数k,这个k就是能够将0转变成1的次数,让我们找出能够翻转k次,数组中连续1的最大个数。

我们以这个例子进行讲解

这道题用滑动窗口思想讲解,这个例子k为2,就代表这个窗口最大存在2个0

right不断遍历这个数组,当这个窗口内包含3个0的时候停下

此时我们要让这个窗口内存在2个0,所以我们的left就要右移,再让right不断右移

这里right从0的时候,每一次右移都要记录这个滑动窗口的大小。

代码如下:

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int left = 0,right = 0,Zerocount = 0,Maxlength = 0;int size = nums.size();while(right < size){if(nums[right] == 0) Zerocount++;while(Zerocount > k){if(nums[left++] == 0) Zerocount--; }Maxlength = std::max(Maxlength,right - left + 1);right++;}return Maxlength;}
};

四、力扣1658——将x减到0的最小操作数

题目如下:

这道题给了我们一个数,让我们只能从该数组的首尾部移除,并把这些移除的数相加等于给的这个target。

这里我们要移除一个数并且将这个数组完整相当困难,我们可以转变一下思想,这道题想让我们移除的数相加等于这个X,那我们可不可以先算一下这个数组每个元素相加的总数是多少,再把这个总数减去X,所以就转化成数组内相加的数等于sum-X的,并使这个窗口包含的数字够多。

这个文字说起来可能难以理解,我们画个图再理解一下

这道题我们把问题转化成在这儿滑动窗口内总数大小 = 这个大数组总数-X,我们返回的最小操作数,就是找到这个滑动窗口size最大的时候

代码如下:

class Solution {
public:int minOperations(vector<int>& nums, int x) {int total = 0,left = 0,right = 0,cnt = 0;for(auto& e : nums) total += e;int sum = total - x;int size = nums.size();int max_size = -1;if (sum < 0) {return -1; // 全部移除也无法满足要求}while(right < size){cnt += nums[right];while(cnt > sum){cnt -= nums[left++];}if(cnt == sum) max_size = std::max(max_size,right - left + 1);right++;}if(max_size == -1) return -1;else return size - max_size;}
};

我们还要注意这种情况 total = 5+6+7+8+9 = 35 ,sum = total - X =31

这里sum无论怎么减都无法 == 31所以根本就不会进入cnt == sum这个判断,所以max_size就一直为-1。

这里我们要加上这个判断

因为存在一种情况,会导致left一直右移导致left超出数组大小导致越界。如图


文章转载自:

http://8NFvhvKK.rkfwr.cn
http://wNeVI4YL.rkfwr.cn
http://CbS58IfD.rkfwr.cn
http://fFjLOC8W.rkfwr.cn
http://9Mnu9VsN.rkfwr.cn
http://KmrPsQLz.rkfwr.cn
http://VKNvvzoV.rkfwr.cn
http://2tWX4vCz.rkfwr.cn
http://LGWarFTf.rkfwr.cn
http://le2Bsxp5.rkfwr.cn
http://CHHJFpXW.rkfwr.cn
http://lXwtskAm.rkfwr.cn
http://VHyfYEjb.rkfwr.cn
http://Ie4FYAfz.rkfwr.cn
http://lf3OrOO6.rkfwr.cn
http://UvqGiv4C.rkfwr.cn
http://CJCH7w4R.rkfwr.cn
http://J04C24km.rkfwr.cn
http://arv7dRfg.rkfwr.cn
http://tXECavw2.rkfwr.cn
http://mq9DVeTT.rkfwr.cn
http://k9Ez2Ic9.rkfwr.cn
http://UE2WqrCs.rkfwr.cn
http://qM0itFyf.rkfwr.cn
http://E1uBiJ5q.rkfwr.cn
http://hv0QNCKx.rkfwr.cn
http://2c5YSjXj.rkfwr.cn
http://xdGX0082.rkfwr.cn
http://Papn2hm5.rkfwr.cn
http://9eIaLV9X.rkfwr.cn
http://www.dtcms.com/wzjs/752135.html

相关文章:

  • 做网站 商标分类网站维护报价表
  • 网站名 注册wordpress模型
  • 麻江网站建设公司简介模板范文大全
  • 不属于企业网站建设基本标准的是公司网站建设外包
  • 网站建设的售后服务查高铁建设进度官方网站
  • 推荐电子商务网站建设海北网站建设
  • 网站怎么更改域名网站添加标签云
  • 班级网站中个人简介怎么做网站开发项目培训
  • 陕西建设执业中心网站常州网站建设软件
  • 竹子林网站建设最新军事新闻军事最新新闻
  • 番禺制作网站报价wordpress 在线购物
  • 陇南市网站建设hexo发布wordpress
  • 卷帘门怎么做网站手机网站开发需要哪些人
  • 昆明专业网站排名推广wordpress价钱
  • 建设网站的企业哪家好网站建设翻译
  • 微网站注意事项网站链接做二维码
  • 网站 百度地图什么网站可以做软件有哪些
  • 企业网站员工园地建设哪些网站平台可以做推广
  • 网站一年的维护费用手机之家官方网
  • 怎么创办网站宁波seo公司推荐
  • 中企动力双语网站厦门网站制作哪里好薇
  • 网站优化公司排名厦门装修公司排名前十口碑推荐
  • 网站seo优化关键词快速排名上首页建站公司选址
  • 山东省建设工程质量安全协会网站网站编辑教程
  • 长沙网站优化掌营天下宜昌做网站的公司
  • 如何提高网站加载速度慢wordpress 插件启用
  • 做网站域名选择淄博品先网络科技有限公司
  • 国外的网站服务商wordpress 仿 主题
  • 网站设计是做什么的代码库网站
  • 做网站是用什么语言wordpress 基本模版