日常练习:lintcode172. 删除元素

题目:

给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。

样例:

给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为[0,0,0,2]

这个题…看上去确实不难
上代码:

class Solution:
    """
    @param: A: A list of integers
    @param: elem: An integer
    @return: The new length after remove
    """
    def removeElement(self, A, elem):
        # write your code here
        i=0      
        while(i < len(A)):
            if(A[i] == elem):
                A.pop(i)
                i -= 1
            i +=1    
        return len(A)

这个东西,有一个问题,就是它的数组长度是改变的,我刚开始没注意到这一点,写的是for i in range(len(A)),就导致了后来的判断越界了,很尴尬,后来改成了while循环,唉….今天不行啊。
以后多想几种方法,今天懒了,就这样吧。
晚安。

你可能感兴趣的:(lintcode)