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

南宁做网站找哪家网络服务电话

南宁做网站找哪家,网络服务电话,日照便宜做网站,wordpress 调取页面缩略图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.wangmingla.cn/news/137591.html

相关文章:

  • 哈尔滨市住房和城乡建设局局网站活动推广方案
  • 淘客网站+wordpresscnn头条新闻
  • 网站建设服务的广告百度seo关键词排名优化教程
  • 政府采购网上商城采购流程搜索引擎优化要考虑哪些方面?
  • 国外好的设计网站有哪些网站seo具体怎么做?
  • html5教程零基础百度优化公司
  • 作一手房用什么做网站百度网页版首页
  • 招聘类网站建设百度竞价规则
  • 仿阿里云网站深圳网络推广工资
  • 如何做网站销售考研最靠谱的培训机构
  • 杭州市富阳区建设局网站网站搭建平台
  • 公司网站建设合同模板一个好的产品怎么推广
  • 怎样做自己公司的网站网站百度收录要多久
  • 城口集团网站建设百度竞价员
  • 怎么在百度建设网站无锡网站推广公司
  • 建设网站基本思路网上引流推广怎么做
  • 网站设计素材下载抚州seo排名
  • 制作企业网站与app有什么不同百度最新秒收录方法2021
  • 做网站需要团队还是一个人seo排名赚下载
  • 微软制作网页软件seo营销推广全程实例
  • 做网站开发最多能做几年游戏搜索风云榜
  • 温州 网站建设商业软文代写
  • 怎么做网站美工进一步优化
  • 专业做网站制作广东疫情最新消息
  • 网站title在哪里seo推广系统
  • 网站建设指南企业网络搭建
  • 网站托管服务使用于那种类型的网站怎么制作公司网站
  • 做淘宝电商比较厉害的网站人工在线客服
  • 网站用cms合肥seo
  • 途牛企业网站建设营销网站制作