Skip to content

Commit 86a335b

Browse files
chaichailabuladong
authored andcommitted
Update 如何去除有序数组的重复元素.md
调整文字顺序
1 parent 1c97ad8 commit 86a335b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

高频面试系列/如何去除有序数组的重复元素.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
显然,由于数组已经排序,所以重复的元素一定连在一起,找出它们并不难,但如果毎找到一个重复元素就立即删除它,就是在数组中间进行删除操作,整个时间复杂度是会达到 O(N^2)。而且题目要求我们原地修改,也就是说不能用辅助数组,空间复杂度得是 O(1)。
1212

13-
其实,**对于数组相关的算法问题,有一个通用的技巧:要尽量避免在中间删除元素,那我就想先办法把这个元素换到最后去**。这样的话,最终待删除的元素都拖在数组尾部,一个一个 pop 掉就行了,每次操作的时间复杂度也就降低到 O(1) 了。
13+
其实,**对于数组相关的算法问题,有一个通用的技巧:要尽量避免在中间删除元素,那我就先想办法把这个元素换到最后去**。这样的话,最终待删除的元素都拖在数组尾部,一个一个 pop 掉就行了,每次操作的时间复杂度也就降低到 O(1) 了。
1414

1515
按照这个思路呢,又可以衍生出解决类似需求的通用方式:双指针技巧。具体一点说,应该是快慢指针。
1616

@@ -70,4 +70,4 @@ ListNode deleteDuplicates(ListNode head) {
7070

7171
[下一篇:如何寻找最长回文子串](../高频面试系列/最长回文子串.md)
7272

73-
[目录](../README.md#目录)
73+
[目录](../README.md#目录)

0 commit comments

Comments
 (0)