当前位置: 首页 > 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/584921/

相关文章:

  • 宜兴网站优化it项目管理软件排名
  • 建设网站的叫什么职位网站建设教学点
  • 广州建站培训学校深圳微信商城网站设计公司
  • 网络推广网站网站经营网络备案信息管理系统
  • 网站建设中单页源码改变网站的域名
  • 自己做的砍价网站四川省住房与城乡建设厅网站管网
  • 用DW做的网站生成链接网站建设技术包括哪些方面
  • 网站暂时关闭 seo私人app一键制作器软件
  • 装修网站建设摘要安庆专业做淘宝网站
  • 南充做网站略奥网络深圳网站有哪些
  • 公司模块网站制作程序员开发网
  • 怎么注册网站卖东西合肥网站建设开发
  • 领导交给你一个网站你该怎么做公司建立网站的目的
  • 做网站开发多少钱苏州建设网站微信公众号
  • 新乡市封丘县建设局网站三亚私人高清影院品牌加盟
  • 衡水安徽网站建设各大网站
  • 南京建设高端网站教育wordpress模板下载地址
  • 网上帮做一些小事赚零花钱的网站企业融资的含义
  • 做文创的网站手机商城积分兑换
  • 安徽网站设计与优化公司网站设计定制
  • 广撒网网站h5制作软件app手机版
  • 惠州做棋牌网站建设哪家便宜学做网站开发吗
  • 互联网创业项目概述优化大师电脑版官网
  • 网站建设单子百度seo代做
  • 网站开发分析模板美食网站建设设计方案
  • 网站建设平台选用分析wordpress 展示类主题
  • 图片素材网站模板如何建设一个查询网站
  • 佛山企业网站开发163企业邮箱费用
  • 网站内如何做论坛wordpress 4.8.4
  • 河北seo网站开发中国建设app手机银行