第三十二天 Remove Duplicates from Sorted Array

已经坚持了一个月了,但总结的太少,感觉提高还是不够,今天开始总结

先开个新题:

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

原地从一个排序数组中删除重复的元素,思路还是双指针【快慢指针】
因为是排过序的,那么相同的一定是相邻的,那么用s代表是结果数组开始的位置,f比s初识快一步,如果s和f指向的值不相同,那么f这个指向的值就应该是结果数组的值,这时就需要s指针向前走一步,并且这个值应该就是f所指向的那个值。

嗯,开始有点被绕进去了,非要去删除相同的,其实应该是“逆向”的找不同的就好。

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return 0
        s = 0
        for f in range(1,len(nums)):
            if nums[s] != nums[f]:
                s+=1
                nums[s] = nums[f]
        return s+1

你可能感兴趣的:(第三十二天 Remove Duplicates from Sorted Array)