P157. 查找重复数字

leetcode 287 lintcode 633 数组 双指针 二分搜索 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个大小为 n+1 的整数数组,数组中的数字都大于等于 1 并且小于等于 n。尝试证明数组中至少存在一个重复的数字。假设数组中只存在一个重复的数字,你要找出这个数字。

题目要求不能修改原数组,并且只能使用 O(1) 的辅助空间。

比如说,给你的数组是:

4, 3, 4, 1, 2, 5

这个数组的大小为 6,也就是说数组中每个数字都大于等于 1 并且小于等于 5。数组中重复的数字为 4,于是你要返回 4。

再比如说,给你的数组是:

1, 3, 3, 3

这个数组的大小为 4,也就是说数组中每个数字都大于等于 1 并且小于等于 3。数组中重复的数字是 3,于是你要返回 3。

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。