1
momocraft 2021-12-17 21:18:00 +08:00
为什么原地取反可以知道是否访问过
|
2
geelaw 2021-12-17 21:54:39 +08:00 via iPhone
此题的标准做法是快慢指针
|
3
kilasuelika 2021-12-18 00:02:49 +08:00 via Android
@momocraft 值本来是正数,访问时取反变成负数。再读的时候看它是负数,那就是访问过了。
|
4
Newyorkcity OP @geelaw ?请具体一点
|
5
xiaopc 2021-12-18 08:40:14 +08:00
首先这是 O(n) 的,其次牛客这道题下面的题解大部分都是快慢指针,也是 O(n) 的,具体看那些题解介绍得很清楚
|
6
Newyorkcity OP |
7
geelaw 2021-12-18 12:22:43 +08:00 via iPhone
@Newyorkcity #4 提示“快慢指针”之后就应该自己搜索了。
#6 什么叫“这类”? 返回数组里第一次重复的索引本来就很自然地可以 O(1) 空间。 利用原来编码的冗余空间(比如这里是 32 位整数只用来表示 1 到 10000 )的算法是比较作弊的方法,本质上还是(额外)空间 Omega(n) 的算法。 |