287 寻找重复数(有环链表待思考

题目描述

给定一个包含n+1个整数的数组nums,其数字都在1到n之间(包括1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,找出这个重复的数。
输入: [1,3,4,2,2] 输出:2

分析

  1. 注意长度和数字范围是有关系的。因此不能简单地用双指针。——值和索引有关系
  2. 二分法——可以用于确定一个有范围的整数
    长度为n+1,每个数都在1-n之间,二分法确定left和right以及mid,如果小于mid的数字个数大于一半,则在小于部分区域,反之在大于部分区域。
  3. 如何想到二分法:
    数组无序但是是有界的;
    重复数字会影响mid的左右区间的个数数量

代码

287 寻找重复数(有环链表待思考