LeetCode–数组
日积月累,坚持每天更新
刷完题后不单单是能够把题做出来,更重要的是需要从这个题里面学到什么方法,仅此在这里记录下自己的想法总结
一、数组-双指针法
26. 删除排序数组中的重复项
26.1 题目:
26.2 结题
26.3 总结:
- 题目要求
原地删除、修改输入数组,就是直接在输入的数组上面操作,不用再借助额外的存储空间,从而达到空间复杂度为:O(1) -
双指针按照我的理解有点像在数组上有两个人,一个人(快指针)负责出去找新的元素,另外一个人(慢指针)负责存储有用的,自己需要的元素。当寻找的那个人,将数组中元素全部寻找一遍之后,负责存储的那个人那里就是全部自己需要的元素了。 - 上面的题解还可以继续优化,当数组没有重复元素时,就会进行不必要的元素复制,可以在元素复制之前添加一个判断,判断之间的间隔是否大于1,若大于1,则说明中间有空元素,需要进行复制