关注
感觉这道题可以用置换的思维,让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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
16741次浏览 191人参与
# 上班到公司第一件事做什么? #
111393次浏览 764人参与
# 你今年做了几份实习? #
11294次浏览 165人参与
# 工作两年想退休了 #
205513次浏览 1822人参与
# 一上班就想____,这正常吗? #
6291次浏览 118人参与
# 七夕节你打算怎么过? #
69284次浏览 800人参与
# 运营面经 #
146294次浏览 1323人参与
# 参加过提前批的机械人,你们还参加秋招么 #
103960次浏览 1641人参与
# 如果公司降薪,你会跳槽吗? #
112578次浏览 729人参与
# 蚂蚁求职进展汇总 #
138958次浏览 1224人参与
# 运营商笔面经互助 #
189523次浏览 1795人参与
# 四大天坑是哪四家? #
91682次浏览 231人参与
# 网易求职进展汇总 #
169578次浏览 1414人参与
# 大厂面试初体验 #
84086次浏览 385人参与
# 什么样的公司千万别去 #
28594次浏览 151人参与
# 业务面应该做哪些准备 #
79477次浏览 814人参与
# 通信/硬件公司求职体验 #
178819次浏览 1025人参与
# 大学最后一个寒假,我想…… #
72696次浏览 730人参与
# 金三银四,你有感觉到吗 #
663532次浏览 6032人参与
# 大家每天通勤多久? #
64794次浏览 416人参与
查看1道真题和解析
滴滴公司福利 1778人发布