Saturday, August 15, 2015

Leetcode 26. Remove Duplicates from Sorted Array

https://leetcode.com/problems/remove-duplicates-from-sorted-array/

Only removing is easy, while the problem requires no extra space, so we must operate on given list.

Because sequence is not required, we can create a pointer pointing at inserting position, when see different numbers, we swap it from back to the inserting position.

Solution:
# T:O(n) S:O(1)
class Solution:
    # @param a list of integers
    # @return an integer
    def removeDuplicates(self, A):
        if len(A) == 0:
            return 0
        j = 0
        for i in range(len(A)):
            if A[i] != A[j]:
                A[i], A[j+1] = A[j+1], A[i]
                j = j + 1
        return j+1
Run Time: 92 ms

No comments:

Post a Comment