关注
感觉这道题可以用置换的思维,让num[i]存放值为i+1的数字。遍历数组,如果num[i] == i+1,令i++查看下一个num[i]。如果num[i] != i+1,则看num[num[i] - 1]是否等于num[i],如果不同则两者交换,让num[i]到正确的位置,同时判断新的num[i] 是否等于 i+1,重复过程;如果num[num[i] - 1]等于num[i],则说明num[i]出现了两次,令i++查看下一个num[i]。
这样一趟下来,出现一次的数都到了正确的位置(值为i+1的数字回到了num[i])。再次遍历,其余num[i]!=i+1的数字就是出现两次的数字。这个方法时间复杂度为O(n),空间复杂度为O(1)。
查看原帖
4 1
相关推荐
查看27道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
今天 11:46
Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26年哪些行业会变好/更差 #
7997次浏览 121人参与
# 实习,不懂就问 #
147257次浏览 1323人参与
# 去年的flag与今年的小目标 #
3947次浏览 116人参与
# 卷__卷不过你们,只能卷__了 #
2669次浏览 74人参与
# 有深度的简历长什么样? #
9016次浏览 182人参与
# 哪些公司在招寒假实习? #
3875次浏览 45人参与
# 入职第一天 #
5520次浏览 95人参与
# 你都用AI做什么 #
3376次浏览 94人参与
# 写论文的崩溃时刻 #
1896次浏览 57人参与
# 你不能接受的企业文化有哪些 #
4509次浏览 78人参与
# 一人分享一道面试手撕题 #
11672次浏览 572人参与
# 实习学到最有价值的工作习惯 #
54251次浏览 433人参与
# 你最满意的offer薪资是哪家公司? #
64213次浏览 320人参与
# 应届生应该先就业还是先择业 #
161928次浏览 821人参与
# 外包能不能当跳板? #
55975次浏览 260人参与
# 滴滴求职进展汇总 #
292732次浏览 2415人参与
# 你的实习什么时候入职 #
333252次浏览 2235人参与
# 帆软软件工作体验 #
8706次浏览 36人参与
# 校招第一份工作你干了多久? #
132772次浏览 586人参与
# 秋招你被哪家公司挂了? #
1003019次浏览 7714人参与

