【Hot100】LeetCode—287. 寻找重复数

avatar
作者
筋斗云
阅读量:0

目录


题目


1- 思路

  • 快慢指针

2- 实现

⭐287. 寻找重复数——题解思路

在这里插入图片描述

class Solution {     public int findDuplicate(int[] nums) {         int slow = nums[0];         int fast = nums[0];          // 找到环         do{             slow = nums[slow];             fast = nums[nums[fast]];         }while(slow!=fast);           slow = nums[0];         while(slow!=fast){             slow = nums[slow];             fast = nums[fast];         }         return slow;     } } 

3- ACM 实现

public class duplicateNum {     public static int findDuplicate(int[] nums){         // 快慢指针         int slow = nums[0];         int fast = nums[0];          // 出发         do{             slow = nums[slow];             fast = nums[nums[fast]];          }while(slow!=fast);          slow = nums[0];         while(slow!=fast){             slow = nums[slow];             fast = nums[fast];         }         return slow;     }      public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         int[] nums = new int[n];         for(int i = 0 ; i < n;i++){             nums[i] = sc.nextInt();         }         System.out.println("结果是"+findDuplicate(nums));     } }  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!