leetcode_27. Remove Element 不允许创建新列表,直接在列表原地删除指定元素
2016-10-27 19:54
639 查看
题目:
Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums =
Your function should return length = 2, with the first two elements of nums being 2.
题意:
给定一个列表,和一个指定的元素,写一个函数,要求不允许创建新的列表,直接删除指定的元素,并返回删除元素后的列表长度,在原始列表中该长度对应的列表为删除元素后的列表内容。
代码:
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
indx = 0 #代表非val的元素下标
for i in range(len(nums)) : #遍历nums,如果不是val,则将其放在indx下标中,否则,如果为val,则继续遍历
if nums[i] != val :
nums[indx] = nums[i]
indx += 1
return indx
笔记:
刚开始不懂题目的意思,没有对nums中非val元素进行移动,只统计了非val元素个数,并返回,然后就报错了。
后来发现需要把非val元素移到前面,并返回非val元素个数,然后就通过了。
Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums =
[3,2,2,3], val =
3
Your function should return length = 2, with the first two elements of nums being 2.
题意:
给定一个列表,和一个指定的元素,写一个函数,要求不允许创建新的列表,直接删除指定的元素,并返回删除元素后的列表长度,在原始列表中该长度对应的列表为删除元素后的列表内容。
代码:
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
indx = 0 #代表非val的元素下标
for i in range(len(nums)) : #遍历nums,如果不是val,则将其放在indx下标中,否则,如果为val,则继续遍历
if nums[i] != val :
nums[indx] = nums[i]
indx += 1
return indx
笔记:
刚开始不懂题目的意思,没有对nums中非val元素进行移动,只统计了非val元素个数,并返回,然后就报错了。
后来发现需要把非val元素移到前面,并返回非val元素个数,然后就通过了。
相关文章推荐
- [C++]LeetCode 27: Remove Element(删除数组中指定元素)
- leetcode:Remove Element (删除给定元素)【面试算法题】
- leetcode:Remove Element删除元素
- 创建一个链表,插入删除,指定元素
- 每天一道LeetCode-----删除序列中指定元素,将满足要求的元素移动到前面
- leetcode-82. Remove Duplicates from Sorted List II(删除有序列表中所有重复元素一个不留)
- add(int index, E element) 在列表的指定位置插入元素
- LeetCode 27. Remove Element(删除元素)
- Leetcode019--删除数组中指定的元素
- [完]PHP Array 创建、索引、添加、删除、判断是否存在指定元素
- add(int index, E element) 在列表的指定位置插入元素
- LeetCode | Remove Element(删除指定元素)
- [LeetCode-27] Remove Element(从数组删除指定的元素)
- python-列表删除所有指定元素
- Python 列表 list 数据类型创建list、添加元素和删除元素
- LeetCode 从排序好的列表中删除重复元素
- 【LeetCode-面试算法经典-Java实现】【027-Remove Element(删除数组中指定的元素)】
- leetcode 删除单链表指定元素
- leetCode 27.Remove Element (删除元素) 解题思路和方法
- Leetcode练习<九> 删除列表中的元素