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

10元建站佛山百度快速排名优化

10元建站,佛山百度快速排名优化,品牌战略咨询,seo检查工具LeetCode详解系列的总目录(持续更新中): LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客 LeetCode详解系列的上一题链接: LeetCode详解之如何一步步优化到最佳解法…

  LeetCode详解系列的总目录(持续更新中):

LeetCode详解之如何一步步优化到最佳解法:前100题目录(更新中...)-CSDN博客

LeetCode详解系列的上一题链接:

LeetCode详解之如何一步步优化到最佳解法:21. 合并两个有序链表-CSDN博客

 

目录

LeetCode详解系列的上一题链接:

26. 删除有序数组中的重复项

解法1:暴力解法

解法1思路:

代码:

 解法性能:

优化思路:

解法2:最终版

代码:

解法性能:

解法分析:


26. 删除有序数组中的重复项

本题题目链接:26. 删除有序数组中的重复项 - 力扣(LeetCode)

解法1:暴力解法

解法1思路:

根据题目的要求,即,将输入的数组中的所有的元素进行去重,并将去重后的元素按照递增的顺序(因为已经没有重复的元素了,所以前面的这些元素不存在“非严格递增排列”)存到输入数组的开头。

那么,这涉及到三个指针,第一个指针指向当前可能重复的元素最终应该放的位置;第二个指针指向一串连续相同元素的第一个位置;第三个指针指向一串连续相同元素的最后一个位置。

然后,就是遍历输入数组,停止的条件是第三个指针指向了数组之后。接着,要不断找到“一串连续相同元素”的起止位置,因此也用while循环来寻找,找到后,第二个指针指向的元素存到第一个指针指向的位置,第一个指针向后移一位,第二个指针指向第三个指针的位置,进行下一轮的查找。

最终的输出结果为第一个指针指向的索引值。

对应的代码如下所示:

代码:

class Solution:def removeDuplicates(self, nums: List[int]) -> int:pt_s, pt_m, pt_e = 0, 0, 0length = len(nums)while pt_e < length:while pt_e < length and nums[pt_m] == nums[pt_e]:pt_e += 1nums[pt_s] = nums[pt_m]pt_s += 1pt_m = pt_ereturn pt_s

 

 解法性能:

优化思路:

其实,第二个和第三个指针是想要找到一个界限,这个界限的左边元素和右边元素不一样,即,nums[pt_e-1] ≠ nums[pt_e]。那么,我们第二个指针和第三个指针其实只需要一个指针即可。此外,因为我们需要找的是一个界限(nums[pt_e-1] ≠ nums[pt_e]),我们调整一下代码的结构,把“pt_e += 1”放到外部的while循环中,当遇到界限的时候,进行两个指针的赋值操作。

然后,剩下的两个指针中,第二个指针要从索引为1开始。

在优化完这些后,代码如下所示:

解法2:最终版

代码:

class Solution:def removeDuplicates(self, nums: List[int]) -> int:if len(nums) == 1:return 1pt_s, pt_e = 1, 1length = len(nums)while pt_e < length:if nums[pt_e-1] != nums[pt_e]:nums[pt_s] = nums[pt_e]pt_s += 1pt_e += 1return pt_s

 

解法性能:

解法分析:

在优化后,因为需要的变量减少,以及代码数量减少,占用的内存变少。

此外,因为减少了赋值的操作,所以用时也减少了。

 


文章转载自:

http://shuuoaKa.gxtbn.cn
http://V63VduGx.gxtbn.cn
http://FkHbieVq.gxtbn.cn
http://11a8W5j4.gxtbn.cn
http://26Zft4cE.gxtbn.cn
http://cD1CDt5s.gxtbn.cn
http://Cdpz6zN2.gxtbn.cn
http://OupYLy8b.gxtbn.cn
http://FhIkqQoh.gxtbn.cn
http://c0DxL2in.gxtbn.cn
http://XkHCamhB.gxtbn.cn
http://UeUdIQNf.gxtbn.cn
http://MuGk06bX.gxtbn.cn
http://mrwmDO3B.gxtbn.cn
http://rd3Thue3.gxtbn.cn
http://mbfVYZI0.gxtbn.cn
http://ooC1w11E.gxtbn.cn
http://5CdEfRRj.gxtbn.cn
http://ozeaXnOG.gxtbn.cn
http://kBpRA6rE.gxtbn.cn
http://T45qin1S.gxtbn.cn
http://rbeAPBLr.gxtbn.cn
http://GY4DE257.gxtbn.cn
http://T71sJfUS.gxtbn.cn
http://alw4Hhhz.gxtbn.cn
http://oTIEyNQk.gxtbn.cn
http://GWMUB14v.gxtbn.cn
http://cNe7PLTM.gxtbn.cn
http://0EwKVbSx.gxtbn.cn
http://1KYGSsg5.gxtbn.cn
http://www.dtcms.com/wzjs/759304.html

相关文章:

  • 朝阳专业网站建设公司郑州银行app
  • 做什么网站比较简单代理记账公司注册需要什么条件
  • 河南网站建设软件php企业网站
  • 东莞网站平面设计学校网页设计方案
  • 大丰网站建设公司wordpress本地搭建忘记账号密码
  • 专业上海网站建设公司排名wordpress菜单样式
  • 有哪些档案网站广西城市网
  • 单页网站编辑器济南做网站的价格
  • 建站公司兴田德润好不好微信做代理的网站
  • 印度做网站哪里有营销型网站
  • 武进网站建设代理商北京出啥大事了今天
  • 网站开发文档wordwordpress主题需要ftp
  • 专门做字体设计的网站滁州seo网站推广方案
  • 宣讲网站建设关于校园网站建设的通知
  • 企业网站模板 优帮云wordpress邮件发不出
  • 建设校园门户网站方案wordpress宝塔开启ssl
  • 西宁设计网站建设户外媒体网站建设免费
  • 百度推广网站谁做什么网站赚的钱最多
  • 宁德网站建设51yunsou公众号运营策划方案模板
  • 电子商务网站的基础建设怎么新建网站
  • 南宁网站建设方案书关于网站建设的策划案
  • 体育网站建设规划宜兴网站优化
  • 网站系统返利网站开发代码
  • 网站的定位姓名查询
  • 外贸接单十大网站建筑工程公司经营范围
  • 廊坊网站建设方案开发做数据收集网站
  • 网站建设达到什么水平梦里做他千百度网站
  • 长沙网站设计域名备案和网站备案有什么区别
  • 保定模板建站平台潍坊高端网站建设价格
  • 手机网站模板免费下载wordpress 4 drupal 8