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

南宁做网站找哪家seo优化教程自学网

南宁做网站找哪家,seo优化教程自学网,网站推广服务器怎么选,网站开发的小结leetcode刷题 面试经典150 27. 移除元素 难度:简单 文章目录 一、题目内容二、自己实现代码2.1 方法一:直接硬找2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 2.2 方法二:排序整体删除再补充2.1.1 实现思路2.1.2 实现代码2.1.3 结果分析 三、…

leetcode刷题
面试经典150
27. 移除元素
难度:简单

文章目录

  • 一、题目内容
  • 二、自己实现代码
    • 2.1 方法一:直接硬找
      • 2.1.1 实现思路
      • 2.1.2 实现代码
      • 2.1.3 结果分析
    • 2.2 方法二:排序整体删除再补充
      • 2.1.1 实现思路
      • 2.1.2 实现代码
      • 2.1.3 结果分析
  • 三、 官方解法
    • 3.1 双指针
      • 3.1.1 算法实现
      • 3.1.2 代码实现
      • 3.1.3 代码分析
    • 3.2 通用的
  • 四、一些注意的地方

一、题目内容

给你一个数组 nums 和一个值 v a l val val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 v a l val val 的元素数量为 k k k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k k k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 不相等的元素数 k k k

二、自己实现代码

2.1 方法一:直接硬找

2.1.1 实现思路

  • 遍历 nums 列表
  • 找到相等的元素,把这往后的所有元素往前移动,最后一个元素记录为 ‘-’
  • 但是,可能往前移动的时候,会有两个相等元素相邻的情况,所以外面加了while判断一下

2.1.2 实现代码

class Solution(object):def removeElement(self, nums, val):""":type nums: List[int]:type val: int:rtype: int"""k = 0while(val in nums):for i in range(len(nums)):if nums[i] == val:k += 1for j in range(len(nums)-i-1):nums[i+j] = nums[i+j+1]nums[len(nums)-k] = "-"return len(nums) - k

2.1.3 结果分析

在这里插入图片描述

  • 时间复杂度:O(n^2)
  • 空间复杂度:O(1)

2.2 方法二:排序整体删除再补充

2.1.1 实现思路

  • 找到有多少个不用的元素
  • 将所有 v a l val val删掉
  • 在删除后的nums上补充“-”

2.1.2 实现代码

class Solution(object):def removeElement(self, nums, val):""":type nums: List[int]:type val: int:rtype: int"""nums.sort()diff = len(nums) - nums.count(val)while val in nums:nums.remove(val)for i in range(diff):   nums.append("-")return diff

2.1.3 结果分析

在这里插入图片描述

三、 官方解法

官方用了双指针来求
但是平时用python习惯了
虽然知道指针好
但是好难养成用指针的习惯呀
参考了宫水三叶的解法,并转换为了python版本
https://leetcode.cn/problems/remove-element/solutions/575555/shua-chuan-lc-shuang-bai-shuang-zhi-zhen-mzt8/

3.1 双指针

3.1.1 算法实现

分成两个阶段

  1. 前面:存储不等于 v a l val val的元素
  2. 后面:存储= v a l val val的元素
  • 直接一个新的 j j j,相等的跳过,不相等的往下填写到数组里进行覆盖

3.1.2 代码实现

class Solution(object):def removeElement(self, nums, val):""":type nums: List[int]:type val: int:rtype: int"""j = 0for i in range(len(nums)):if nums[i] != val:nums[j] = nums[i]j += 1return j

3.1.3 代码分析

在这里插入图片描述

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

3.2 通用的

和26题目解法有关,还没有写到,等写到了再看吧

四、一些注意的地方

  1. 多想一想双指针,用下来真的会方便好多
http://www.sczhlp.com/news/49228/

相关文章:

  • 农庄网站模板百度官网app
  • wordpress电商教程seo推广哪家好
  • 网页制作怎么做第二页优化大师使用心得
  • 专做苹果二手手机的网站新东方烹饪学校
  • 米业做网站的好处torrentkitty搜索引擎
  • 买模板做网站企业建站公司
  • 网站模板下载后如何使用排名优化系统
  • 手机网站页面设计尺寸长尾关键词排名工具
  • Trie树
  • 人妖手术是怎么做的视频网站seo优化招商
  • 象山seo的优化重庆seo排
  • 前端做网站步骤最近比较火的关键词
  • 网站建设常用代码销售管理软件
  • 网站推销怎么做ppt模板广东网络seo推广公司
  • 政府网站的信息资源建设情况东莞seo排名优化
  • 建设b2b网站需要多少钱高端网站建设企业
  • 雄安做网站价格市场推广方案
  • 专业建设网站应该怎么做seo 工具
  • 网站建设实训结论谷歌竞价推广教程
  • ARC193 做题记
  • 洛谷P1522 [USACO2.4] 牛的旅行 Cow Tours(并查集+floyd)
  • 硅谷顶级 VC 如何看语音 AI?Greylock 合伙人揭秘 Voice Agent 构建的三层策略
  • 哇塞!AI编程神器Kiro,免排队畅用真Claude模型!
  • 无锡网站建设哪家好电商网站建设教程
  • ps做网站图片自己做的网址如何推广
  • 网站建设无锡360线上推广
  • 龙岩做网站公司百度官网首页官网
  • 合川集团网站建设怎么交换友情链接
  • [RPC/序列化] Proto 文件的语法解读
  • js网站访问量统计沈阳关键词推广