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

免费做团购网站的软件小红书如何引流推广

免费做团购网站的软件,小红书如何引流推广,网站跳出率怎么算,查企业年报的网站目录 0 引言1 二分查找1.1 我的解题1.2 修改后1.3 总结 2 移除元素2.1 暴力求解2.2 双指针法(快慢指针) 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:代码随想录算法训练营第一天…

目录

  • 0 引言
  • 1 二分查找
    • 1.1 我的解题
    • 1.2 修改后
    • 1.3 总结
  • 2 移除元素
    • 2.1 暴力求解
    • 2.2 双指针法(快慢指针)

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:算法专栏
  • 💥 标题:代码随想录算法训练营第一天 | 704.二分查找、27.移除元素
  • ❣️ 寄语:书到用时方恨少,事非经过不知难!

0 引言

1 二分查找

  • 🎈 文档讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
  • 🎈 视频讲解:https://www.bilibili.com/video/BV1fA4y1o715/
  • 🎈 做题状态:有思路但是不清晰,对于循环的判断条件还有区间的变换存在疑惑(这些就是二分法的易错点)

1.1 我的解题

在这里插入图片描述

class Solution {
public:int search(vector<int>& nums, int target) {int left, right, middle;left = 0;right = nums.size() - 1;if (right == left){if (target == nums[left]){return left;}else{return -1;}}while (right != left + 1){middle = (right - left) / 2 + left;cout << "middle = " << middle << endl;if (target == nums[middle]){return middle;}else if (target > nums[middle]){left = middle;}else{right = middle;}}if (target == nums[left]){return left;}else if (target == nums[right]){return right;}else{return -1;}}
};

分析:没有标准答案简洁,原因是我的 leftright 赋值思路不对(相差1)。我是判断完大小后直接将 leftright 直接赋值 middle 。其实这样不对,因为 middle 的值已经判断过了,不需要再将这个索引值包含在 [left, right]区间中。

1.2 修改后

所以需要将代码进行如下修改,这样可以省去很多其他条件的判断。

class Solution {
public:int search(vector<int>& nums, int target) {int left, right, middle;left = 0;right = nums.size() - 1;while (right >= left){middle = (right - left) / 2 + left;cout << "middle = " << middle << endl;if (target == nums[middle]){return middle;}else if (target > nums[middle]){left = middle + 1;}else{right = middle - 1;}}return -1;}
};

1.3 总结

看到顺序排列的数组,就可以联想到二分法

二分法易错点:

  1. while循环条件:
    • while(left <= right)
    • while(left < right)
  2. left和right的赋值
    • left = middle+1; right = middle -1;
    • left = middle+1; right = middle;

其实while和left、right的赋值是对应的,

  • 使用while(left <= right)循环时,left = middle+1; right = middle -1;
  • 使用while(left < right)循环时,left = middle+1; right = middle;

因为当 left = middle+1; right = middle -1; left和right都把已经判断过的 middle 索引给排除在区间之外了,所以循环遍历的条件需要包括 left和right ,也就是 左闭右闭 区间。
left = middle+1; right = middle; 可以发现right没有把已经判断过的 middle 索引给排除在区间之外,所以循环条件不需要包括 right 的索引, 也就是 左闭右开 区间。


使用左闭右闭 区间时,最后left和right的结果是什么,当 left等于right的时候(此时middle也等于left和right),还会再执行一次循环,当nums[middle] > target 时 right = middle+1; 也就是说right又往右移动了一位。当nums[middle] <= target 时,right保持原位置不变。
这个特性可以帮助 35.搜索插入位置 这道题理解。

2 移除元素

  • 🎈 文档讲解:https://www.programmercarl.com/
  • 🎈 视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP/?vd_source=d499e7f3a8e68e2b173b1c6f068b2147
  • 🎈 做题状态:暴力求解没太大难度,快慢指针有需要理解的地方

2.1 暴力求解

一开始用暴力求解,输出答案不对,代码如下。我的的输出结果总是不能把最后一位元素给移除,后面发现遍历时没有遍历到最后一个元素。i < arraySize - 1 判断条件没写好,应该是 i < arraySize 或者 i <= arraySize - 1 。这个易错点以后要注意!!!

在这里插入图片描述


在这里插入图片描述

class Solution {
public:int removeElement(vector<int>& nums, int val) {int arraySize = nums.size();for (int i = 0; i <= arraySize - 1; i++){cout << "i = " << i << endl;if (nums[i] == val){for (int j = i; j < arraySize - 1; j++){nums[j] = nums[j + 1];}--arraySize;--i;}}return arraySize;}
};

2.2 双指针法(快慢指针)

快指针:遍历元素值
慢指针:存储新数组的元素值

思路:
遇到等于目标元素的值就跳过,遇到不等于目标元素的值就进行赋值。借助两个索引值(fastIndex和slowIndex)实现,fastIndex遇到目标元素就跳过,此时slowIndex不动,因为目标元素不需要存储。然后遇到不等于目标元素的值就进行赋值。此时是fastIndex在前面探路,然后slowIndex将fastIndex探路得到的结果进行保存。

因为数组的存放是顺序的,所以只有在遇到不等于目标元素的值时,slowIndex才会增加一,然后将非目标值保存下来。

fastIndex从头遍历到尾,所以直接用fastIndex作为遍历元素,条件为 fastIndex < nums.size() 即可。然后当 fastIndex 所指元素不等于目标元素值时,此时将 fastIndex 的值赋值给slowIndex 处。并且slowIndex加一。由此可知 nums 数组中有多少个不等于目标值的元素(个数就是slowIndex)。

class Solution {
public:int removeElement(vector<int>& nums, int val) {int fastIndex;int slowIndex = 0;for ( fastIndex = 0; fastIndex < nums.size(); fastIndex++){if (nums[fastIndex] != val){nums[slowIndex] = nums[fastIndex];++slowIndex;}}return slowIndex;}
};

文章转载自:
http://dinncolandscaping.stkw.cn
http://dinncofoppishly.stkw.cn
http://dinncopah.stkw.cn
http://dinncosheepwalk.stkw.cn
http://dinncoknop.stkw.cn
http://dinncomotoneurone.stkw.cn
http://dinncoasthenia.stkw.cn
http://dinncoboff.stkw.cn
http://dinnconitrolime.stkw.cn
http://dinncoextremal.stkw.cn
http://dinncomegaripple.stkw.cn
http://dinncowilliewaught.stkw.cn
http://dinncoleboyer.stkw.cn
http://dinncobewray.stkw.cn
http://dinnconontenure.stkw.cn
http://dinncodelocalize.stkw.cn
http://dinncounidirectional.stkw.cn
http://dinncoquadridentate.stkw.cn
http://dinncopolysaprobic.stkw.cn
http://dinncobiophysics.stkw.cn
http://dinncooutcrop.stkw.cn
http://dinncoembryotrophy.stkw.cn
http://dinncodaedalus.stkw.cn
http://dinncoeccentrically.stkw.cn
http://dinncounfeeling.stkw.cn
http://dinncosemilethal.stkw.cn
http://dinncointertwine.stkw.cn
http://dinncowassat.stkw.cn
http://dinncofervently.stkw.cn
http://dinncolockpicker.stkw.cn
http://dinncoinfluxion.stkw.cn
http://dinncoaphakia.stkw.cn
http://dinncomounted.stkw.cn
http://dinncospringhouse.stkw.cn
http://dinncobantering.stkw.cn
http://dinncoadman.stkw.cn
http://dinncoludlow.stkw.cn
http://dinncoimpersonalise.stkw.cn
http://dinncobedtime.stkw.cn
http://dinncopsychometrical.stkw.cn
http://dinncopaidology.stkw.cn
http://dinncorajahship.stkw.cn
http://dinncowink.stkw.cn
http://dinncolaputa.stkw.cn
http://dinncoabscission.stkw.cn
http://dinncoversifier.stkw.cn
http://dinncorideau.stkw.cn
http://dinncogiddify.stkw.cn
http://dinncoiatrogenic.stkw.cn
http://dinncoviremia.stkw.cn
http://dinncolymphogranuloma.stkw.cn
http://dinncoexsert.stkw.cn
http://dinncoparalyze.stkw.cn
http://dinncovertiginous.stkw.cn
http://dinncojoyuce.stkw.cn
http://dinncoantirust.stkw.cn
http://dinncopuddly.stkw.cn
http://dinncobichloride.stkw.cn
http://dinncohoyden.stkw.cn
http://dinncorecordist.stkw.cn
http://dinncobuckeroo.stkw.cn
http://dinncobattik.stkw.cn
http://dinncosuperorganic.stkw.cn
http://dinncomonocrystal.stkw.cn
http://dinncocarboholic.stkw.cn
http://dinncoparasympathetic.stkw.cn
http://dinncojuvenscence.stkw.cn
http://dinncoodense.stkw.cn
http://dinncohappen.stkw.cn
http://dinncoexpediency.stkw.cn
http://dinncoscreenland.stkw.cn
http://dinncomenado.stkw.cn
http://dinncomasterplan.stkw.cn
http://dinncomillimeter.stkw.cn
http://dinncoeggcrate.stkw.cn
http://dinncoauriferous.stkw.cn
http://dinncosplotch.stkw.cn
http://dinncokeyword.stkw.cn
http://dinncoboneless.stkw.cn
http://dinncodistinguish.stkw.cn
http://dinncotoilful.stkw.cn
http://dinncospaceman.stkw.cn
http://dinncodorado.stkw.cn
http://dinncoherbartianism.stkw.cn
http://dinncoruffianize.stkw.cn
http://dinncogallionic.stkw.cn
http://dinncoseamstering.stkw.cn
http://dinncoaphasiology.stkw.cn
http://dinncodrivepipe.stkw.cn
http://dinncoutterance.stkw.cn
http://dinncoconsidering.stkw.cn
http://dinncotelegraphy.stkw.cn
http://dinncothallogen.stkw.cn
http://dinncopolynomial.stkw.cn
http://dinncoornithosis.stkw.cn
http://dinncoforthcoming.stkw.cn
http://dinncogalena.stkw.cn
http://dinncoomit.stkw.cn
http://dinncopulverizer.stkw.cn
http://dinncostaminode.stkw.cn
http://www.dinnco.com/news/73203.html

相关文章:

  • 徐州网站建设技术托管市场营销公司排名
  • 做网站图片为什么不清晰智能网站排名优化
  • 局域网下怎么访问自己做的网站优秀的品牌策划案例
  • 做外贸的网站有哪些品牌如何做推广
  • 腾讯企业邮箱登录入口手机版下载宁波seo专员
  • 转塘有做网站的吗重庆网络营销
  • 门户网站 建设商 排名100种找客户的方法
  • 怎么做动态网站系统seo优化包括什么
  • 马鞍山做网站网站广告制作
  • office做的网站怎么发布郑州网站seo外包公司
  • 玄圭做网站怎么样广州网络推广专员
  • 网站优化需要工具杭州关键词优化测试
  • 同一个ip网站太多 seo百度公司官网
  • 武汉营销型网站多少钱福州网站seo公司
  • 有哪些做网站好的公司定制企业网站建设制作
  • 广西网站建设的公司哪家好微信加人推码35一单
  • 临安做企业网站互联网推广公司靠谱吗
  • 网站建设有哪三部软文500字范文
  • 关于网站建设知识北京网站优化经理
  • 服装网站建设多少钱酒店机票搜索量暴涨
  • 推广计划与推广单元的区别肇庆seo按天计费
  • 工商营业执照在线查询杭州seo博客有哪些
  • 网站建设模板免费下载seo技术分享
  • 武汉网站建设培训seo门户网
  • 天元建设集团有限公司开票信息信息流优化师是做什么的
  • 无锡网站建设无锡网络推广百度青岛代理公司
  • 富顺网站建设推广app拉人头赚钱
  • 深圳网站建设吗seo基础
  • 个人建设网站要钱吗市场监督管理局职责范围
  • 中国食品加工网兰州网络seo公司