521. 去除重复元素

Posted yunxintryyoubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了521. 去除重复元素相关的知识,希望对你有一定的参考价值。

521. 去除重复元素

中文English

给一个整数数组,去除重复的元素。

你应该做这些事

1.在原数组上操作
2.将去除重复之后的元素放在数组的开头
3.返回去除重复元素之后的元素个数

样例

例1:

输入:
nums = [1,3,1,4,4,2]
输出:
[1,3,4,2,?,?]
4

解释:
1. 将重复的整数移动到 nums 的尾部 => nums = [1,3,4,2,?,?].
2. 返回 nums 中唯一整数的数量  => 4.
事实上我们并不关心你把什么放在了 ? 处, 只关心没有重复整数的部分.

例2:

输入:
nums = [1,2,3]
输出:
[1,2,3]
3

挑战

1.O(n)时间复杂度.
2.O(nlogn)时间复杂度但没有额外空间

注意事项

不需要保持原数组的顺序

 
 
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param nums: an array of integers
    @return: the number of unique integers
    """
    def deduplication(self, nums):
        # write your code here
        #双指针写法,一个记录,一个走,如果相等,则替换
        length, count = len(nums), 0 
        left, right = 0,length - 1
        dict = {}

        #定义主指针
        while left <= right:
            if nums[left] in dict:
                nums[left], nums[right] = nums[right], nums[left]
                right -= 1
            else:
                dict[nums[left]] = True
                count += 1
                left += 1 

        return  count 

 

 

以上是关于521. 去除重复元素的主要内容,如果未能解决你的问题,请参考以下文章

面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!

面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!

用samtools的rmdup去除PCR重复reads

面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!

java比较两个集合中重复的元素并去除

如何去除List集合中重复的元素