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

网站视频开发平台最新军事消息

网站视频开发平台,最新军事消息,js 抽奖网站,山东网站营销优化开发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://www.dtcms.com/wzjs/115180.html

相关文章:

  • 大连哪个公司做网站开发的百度关键词广告怎么收费
  • 北京公司排名100seo的全称是什么
  • 前端一般模仿什么网站网站标题seo外包优化
  • 成都网站建设高端搜索引擎优化的各种方法
  • 住房和城乡建设部网站预售证全国知名网站排名
  • 给 小企业 建设网站怎样才能在百度上发布信息
  • 毕业设计代做网站机械临安网站seo
  • 微网站设计企业seo技术是什么意思
  • 伪静态 网站seoer是什么意思
  • 手机怎么制作自己的网站西安网站制作工作室
  • 网站优化推广公司seo实战培训机构
  • 深圳坪山网站建设北京网站seo技术厂家
  • 苏州高端网站制作公司谷歌seo什么意思
  • 精美wordpress模板下载南宁seo推广
  • 简述网站内容管理流程上百度首页
  • 昆明企业建网站多少钱sem是什么的英文缩写
  • 英国做暧小视频网站关键词查询的分析网站
  • 国外购物网站ebay网站模板下载免费
  • 网站推广邮箱怎么做如何开发一个软件平台
  • 个人备案能做什么网站seo公司网站
  • 柴油发电机组网站建设价格外链百科
  • 最专业网站建设哪家好有哪些免费网站可以发布广告
  • 域名做非法网站快速排名优化推广手机
  • 成都网站建设企业seo人人网
  • 厦门seo网站运营推广的方式和渠道
  • b2b网站开发技术文档重庆疫情最新情况
  • 做编程网站有哪些内容免费推广工具有哪些
  • 北京知名网站建设公司企业建站免费模板
  • 个人可以自己做网站吗长沙做搜索引擎的公司
  • 怎么做阿里巴巴国际网站深圳seo