Facebook
From Rahul, 2 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 91
  1. class Solution {
  2. public:
  3.     int findDuplicate(vector<int>& nums) {
  4.        
  5.         int slow = nums[0];
  6.         int fast = nums[0];
  7.         do{
  8.             slow = nums[slow];
  9.             fast = nums[nums[fast]];
  10.         }while(slow != fast);
  11.        
  12.         slow = nums[0];
  13.         int ans = fast;
  14.         while(fast != slow){
  15.             fast = nums[fast];
  16.             slow = nums[slow];
  17.             ans = slow;
  18.         }
  19.        
  20.         return ans;
  21.     }
  22. };