public class Solution {
    public int FindDuplicate(int[] nums) {
        if (nums.Count() > 1)
            {
                int slow = nums[0];
                int fast = nums[nums[0]];
                while (slow != fast)
                {
                    slow = nums[slow];
                    fast = nums[nums[fast]];
                }

                fast = 0;
                while (fast != slow)
                {
                    fast = nums[fast];
                    slow = nums[slow];
                }
                return slow;
            }
            return -1;
    }
}

https://leetcode.com/problems/find-the-duplicate-number/#/description

posted on 2017-06-09 08:49  Sempron2800+  阅读(215)  评论(0编辑  收藏  举报