1. 程式人生 > >原 leetcode python 27.移除元素

原 leetcode python 27.移除元素

class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        if len(nums) == 0:
            return 0;
        j=0
        for i in range(0,len(nums)):
            if nums[i] != val :
                nums[j] = nums[i]
                j = j + 1
return j

這個是真沒想到。。。。

自己寫的方法是,有點類似於快排partition操作,用兩個指標,前面遇到要刪除的元素時,將陣列尾部不被刪除的移到前面,直到i>j結束迴圈

class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        i= 0
        j= len(nums)-1
        count = 0
s = 0 while(1): if(i>j): break if nums[i]==val: count+=1 while(nums[j]==val and j>i): count+=1 j=j-1 nums[i]=nums[j] j=j-1 i+=1
else: i+=1 return len(nums)-count