http://oj.leetcode.com/problems/remove-element/

来源:互联网 发布:东莞软件检测机构 编辑:程序博客网 时间:2024/06/05 07:27

http://oj.leetcode.com/problems/remove-element/

最开始没看懂题目 就只返回了长度而已 

实际上题目要求 去掉elem值 然后将剩余的数 放在原数组的前N个位置 

所以想要新创建一个数组是不可行的 

前后各一个指针 当list[n]为elem时 就交换这个elem最后一个不是elem的数

最后再计算长度 

想过计算交换次数 然而list尾部也有elem 不需要交换 因此统计交换次数是不行的 

class Solution:    # @param    A       a list of integers    # @param    elem    an integer, value need to be removed    # @return an integer    def removeElement(self, A, elem):        n=0        for i in range(len(A)):            if A[i]==elem:                for j in range(len(A)-1,0,-1):                    if i>j:                        break                    else:                        if A[j]!=elem:                            A[i]=A[j]                            A[j]=elem                            break        for i in A:            if i!=elem:                n=n+1            else:                break        return n        


0 0
原创粉丝点击