博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--027--移除元素
阅读量:7033 次
发布时间:2019-06-28

本文共 1553 字,大约阅读时间需要 5 分钟。

问题描述:

给定一个数组 nums 和一个值 val,你需要移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:

给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

 

方法1:用k纪录等于val的个数

1 class Solution(object): 2     def removeElement(self, nums, val): 3         """ 4         :type nums: List[int] 5         :type val: int 6         :rtype: int 7         """ 8         i = 0 9         k = 010         while i < len(nums):11             if nums[i] == val:12                 k += 113             else:14                 nums[i-k] = nums[i]15             i += 116         return len(nums) - k

方法2:

1 class Solution(object): 2     def removeElement(self, nums, val): 3         """ 4         :type nums: List[int] 5         :type val: int 6         :rtype: int 7         """ 8         j = 0 9         for i in nums:10             if i != val:11                 nums[j] = i12                 j += 113         return j

方法3:不等就赋值,用k纪录不等于val的个数

1 class Solution(object): 2     def removeElement(self, nums, val): 3         """ 4         :type nums: List[int] 5         :type val: int 6         :rtype: int 7         """ 8         k = 0 9         for i in range(len(nums)):10             if nums[i] != val:11                 nums[k] = nums[i]12                 k += 113             i += 114         return k

2018-07-23 17:50:20

转载于:https://www.cnblogs.com/NPC-assange/p/9356011.html

你可能感兴趣的文章
开源 免费 java CMS - FreeCMS-数据对象-link
查看>>
JVM与字节码—类的方法区模型
查看>>
java中的getParentFile
查看>>
Linux下软链接与硬链接的区别
查看>>
git 基本操作指令
查看>>
linux21-磁盘阵列
查看>>
openstack问题收集
查看>>
构造函数和析构函数
查看>>
python3.6 安装pyhook_3
查看>>
jetty NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()
查看>>
IT人生 需要指引
查看>>
valgrind for android
查看>>
整理各版本Spring所要求的JavaSE和JavaEE的版本
查看>>
高人的博客地址收藏
查看>>
BugHD for JavaScript上线,轻松收集前端 Error
查看>>
正则表达式 与grep
查看>>
OC之@class
查看>>
Zabbix自定义交换机接口名称
查看>>
linux 命令 —— find
查看>>
在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)
查看>>