leetcode笔记:Remove Element

一.题目描述

二.解题技巧

这道题和Remove Duplicates from Sorted Array类似,不同的是这里只要删除值等于给定值的元素即可,可以采用和前面的题相同的做法:可以将原来的数组看作一个栈,设定一个栈顶指针,在对数组进行遍历的时候,判断元素是否等于给定值,如果等于,则直接进行数组的下一个元素,如果不等于,则将该元素放入到栈顶,然后更新指针并处理数组的下一个元素。之所以能这么做,,是因为我们在遍历过程中,对于数组元素的访问的下标总是不小于栈顶指针的,因此,可以将原来的数组直接当作一个栈来使用,这样就能做到in-place处理了。

这道题相对比较简单,也没有多少边界条件要考虑,是一道练手的题。这里在进行删除后数组的元素的个数的统计的时候,有一个技巧,即栈顶指针就已经说明了数组中元素的个数了,因此,可以直接返回栈顶指针就可以了(这里的栈顶指针是用数组的下标表示的)。当然,也可以统计等于给定值的元素的个数,然后用原来的数组个数减去该值就可以得到新的数组的值了。

三.示例代码

class Solution{public:int removeElement(int A[], int n, int elem){int TrueIndex = 0;for (int Index = 0; Index < n; Index++){if (A[Index] != elem){A[TrueIndex] = A[Index];TrueIndex++;}}return TrueIndex;}};

四.体会

这道题实现简单,没有很严格的边界条件,可以寻求别的解决方式。

人的一生是奋斗的一生,人们为了取得成功都在不断地努力着,

leetcode笔记:Remove Element

相关文章:

你感兴趣的文章:

标签云: