关注
/*
由于数组是 从n开头的m+1 /m -1 个数
M+1意味着重复, m-1意味着缺失
【重复的找法】:
1.【何时重复】:
假如数组的按照顺序排好的,那么只要看数组下标和当前数组的值的关系就好了:
如是[0,1,2,3] 那么index = 0 时候就应该是 0
换算到题目上就是:
data[I] = data[data[i] -n] 意味着出现了重复
举例:
[2,3,5,4,3,6] 此时 n = 2;
data[4] = 3
data[data[4] -2] = data[3 -2] = data[1]
也就是如果以 2开头, 那么意味着3应该在data[1]的位置上,所以有
else if (data[i] == data[cur]) {
System.out.println("duplicate is: " + data[i]);
break;
}
2. data[i] = i,意味着在对的位置上,不需要换位置,放在原位即可,后续如果遇到了重复可以和这个位置上的数比较
3. 如果遇到了位置不对的情况时,需要做交换,把数字放到对的位置上
【缺失的找法】:
利用数学特性
a^a = 0
0^a = a
假设存在缺失,举例:
[3,5,6,7,8]
data[i] ^ n++
3(data值)^3(角标)^5^4^6^5^7^6^8^7^8(数组本身长度) = 4
*/
查看原帖
点赞 15
相关推荐
点赞 评论 收藏
分享
01-31 11:59
蚌埠坦克学院 后端工程师 dzh2000:借楼求大佬们戳头像指导,27届毕业生今年要找暑期实习,在纠结现在是继续做科研还是先找个日常实习攒经历方便找暑期?
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
7377次浏览 116人参与
# 牛友的春节生活 #
4016次浏览 109人参与
# 春节前,你还在投简历吗? #
10186次浏览 133人参与
# 从夯到拉,锐评职场mentor #
2865次浏览 55人参与
# 牛客AI体验站 #
14054次浏览 262人参与
# 实习到现在,你最困惑的一个问题 #
3001次浏览 95人参与
# 春节提前走,你用什么理由请假? #
6661次浏览 168人参与
# 备战春招/暑实,现在应该做什么? #
2785次浏览 99人参与
# 距离春招还有一个月,你现在是什么开局? #
4430次浏览 93人参与
# 聊聊Agent开发 #
19618次浏览 517人参与
# 暑期实习什么时候投? #
5088次浏览 129人参与
# 推荐一个值得做的AI项目 #
5359次浏览 153人参与
# 听劝,这个简历怎么改 #
380671次浏览 1826人参与
# 机械人的秋招小目标 #
28358次浏览 239人参与
# 我的AI电子员工 #
27660次浏览 186人参与
# 腾讯工作体验 #
568267次浏览 3712人参与
# 参加完秋招的机械人,还参加春招吗? #
108305次浏览 704人参与
# 实习的内耗时刻 #
221537次浏览 1643人参与
# 互联网公司评价 #
488515次浏览 4119人参与
# bilibili求职进展汇总 #
180903次浏览 1074人参与
查看15道真题和解析