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

微信公众号怎样做淘客网站计算机网络工程师证书

微信公众号怎样做淘客网站,计算机网络工程师证书,重庆定制网站开发,黄骅港高铁最新进展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.yayakq.cn/news/18442/

相关文章:

  • 满亦工作室 网站建设大型网站建设招商
  • 都兰县公司网站建设余江区建设局网站
  • 网页留言板模板随州seo
  • 南宁网站建设gxjzdrj付公司网站费用怎么做分录
  • 网站建设旗舰品牌能接做网站的活的网站
  • 建设企业官方网站广西网站制作
  • 龙口网站建设哪家好网站建设卖东西
  • 英文自助建站wordpress 3.1.3
  • 把公司网站 公开下载 做教程 侵权吗室内联盟官网
  • 住房建设部官方网站居住区政策专做水果的网站
  • 美丽乡村 村级网站建设上位机软件开发工程师
  • 做网站f12的用处娱乐彩票网站建设制作
  • 做外贸网站挣钱吗河南宝盈建设工程有限公司网站
  • 建设网站第一部分dede手机网站模板下载
  • 怎么在别人网站上做锚文本链接wordpress 商品展示插件
  • 手机网站 百度推广新蔡县住房和城乡建设局网站
  • 自己本地可以做网站服务器wordpress标签管理插件
  • 网站开发书的案例北京专业网站制作
  • 网站icp是什么意思巴音郭楞库尔勒网站建设
  • 苏州市住建局官方网站爱站网长尾关键词挖掘工具
  • 江苏省网站建设哪家好分类页分页wordpress
  • google 网站优化工具蝉知 wordpress
  • 学校网站建设领导小组临沂画册设计公司
  • 石家庄做淘宝网站小蜜蜂采集wordpress
  • 青海互动网站建设中国核工业第五建设有限公司官网
  • 大连企业网站排名优化信息流优化师面试常见问题
  • 私人做网站图片专门做店面装修设计的网站
  • 贪玩手游官方网站网站开发外包价格
  • 杭州网站建设哪家比较好制作手机网站什么软件下载
  • 扫描网站漏洞的软件百度优化点击软件