Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yangkaifeng
Fucking Algorithm
提交
86a335be
F
Fucking Algorithm
项目概览
yangkaifeng
/
Fucking Algorithm
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Fucking Algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
86a335be
编写于
5月 17, 2020
作者:
C
chaichai
提交者:
labuladong
6月 22, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update 如何去除有序数组的重复元素.md
调整文字顺序
上级
1c97ad83
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
3 deletion
+2
-3
高频面试系列/如何去除有序数组的重复元素.md
高频面试系列/如何去除有序数组的重复元素.md
+2
-3
未找到文件。
高频面试系列/如何去除有序数组的重复元素.md
浏览文件 @
86a335be
...
...
@@ -10,7 +10,7 @@
显然,由于数组已经排序,所以重复的元素一定连在一起,找出它们并不难,但如果毎找到一个重复元素就立即删除它,就是在数组中间进行删除操作,整个时间复杂度是会达到 O(N^2)。而且题目要求我们原地修改,也就是说不能用辅助数组,空间复杂度得是 O(1)。
其实,
**对于数组相关的算法问题,有一个通用的技巧:要尽量避免在中间删除元素,那我就
想先
办法把这个元素换到最后去**
。这样的话,最终待删除的元素都拖在数组尾部,一个一个 pop 掉就行了,每次操作的时间复杂度也就降低到 O(1) 了。
其实,
**对于数组相关的算法问题,有一个通用的技巧:要尽量避免在中间删除元素,那我就
先想
办法把这个元素换到最后去**
。这样的话,最终待删除的元素都拖在数组尾部,一个一个 pop 掉就行了,每次操作的时间复杂度也就降低到 O(1) 了。
按照这个思路呢,又可以衍生出解决类似需求的通用方式:双指针技巧。具体一点说,应该是快慢指针。
...
...
@@ -70,4 +70,4 @@ ListNode deleteDuplicates(ListNode head) {
[
下一篇:如何寻找最长回文子串
](
../高频面试系列/最长回文子串.md
)
[
目录
](
../README.md#目录
)
\ No newline at end of file
[
目录
](
../README.md#目录
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录