首页 > 其他分享 >287.寻找重复数

287.寻找重复数

时间:2022-11-13 21:13:30浏览次数:52  
标签:slow nums 重复 复杂度 寻找 fast 整数 287

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。

你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

示例 1:

输入:nums = [1,3,4,2,2]
输出:2

示例 2:

输入:nums = [3,1,3,4,2]
输出:3

提示:

  • 1 <= n <= 105
  • nums.length == n + 1
  • 1 <= nums[i] <= n
  • nums 中 只有一个整数 出现 两次或多次 ,其余整数均只出现 一次

进阶:

  • 如何证明 nums 中至少存在一个重复的数字?
  • 你可以设计一个线性级时间复杂度 O(n) 的解决方案吗?

方法:双指针

时间复杂度:O(n)

空间复杂度:O(1)

 1 /**
 2  * @param {number[]} nums
 3  * @return {number}
 4  */
 5 var findDuplicate = function (nums) {
 6     let slow = 0, fast = 0;
 7     do{
 8         slow=nums[slow];
 9         fast=nums[nums[fast]];
10     }while(slow!==fast);
11     slow=0;
12     while(slow!==fast){
13         slow=nums[slow];
14         fast=nums[fast];
15     }
16     return slow;
17 };

 

标签:slow,nums,重复,复杂度,寻找,fast,整数,287
From: https://www.cnblogs.com/icyyyy/p/16886962.html

相关文章

  • 最长无重复子数组
    最长无重复子数组 import java.util.*;public class Solution {    /**     *      * @param arr int整型一维数组 the array    ......
  • 牛客小白月赛60 E-寻找小竹!(数论)
    链接:https://ac.nowcoder.com/acm/contest/45670/E来源:牛客网题目大意:有n个城市,n-1条道路,每个城市都有它自己的优雅值ai而如果两个相邻的路口的优雅值存在至少两个共......
  • MySQL中重复数据清理(清理主键Id较小的)
    DELETEFROMuserWHEREidIN(SELECTmin(id)idFROM(SELECT*FROMuserWHERE`member_id`IN(SELECTmember_idFROM(......
  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)
    计算机视觉研究院专栏作者:Edison_G近年来,在利用深度卷积网络检测目标方面取得了显著进展。然而,很少有目标检测器实现高精度和低计算成本。公众号ID|ComputerVisionGzq学习群|......
  • SQL Server 表中删除重复行
    前言   MySQL去重例子​​https://blog.51cto.com/fengyuzaitu/2687655​​​​​​​https://blog.51cto.com/fengyuzaitu/5790968​​select id,name,age from u......
  • git永久保存账号密码,免去git重复输入账号密码操作
    我之前就是每一次操作都要输入用户名和密码,繁琐得很。现在给各位分享下git永久保存账户名和密码。方法一:安装好git之后一般会在C盘的C:\Users\Administator目录下生成.g......
  • 74 寻找数组的中心下标
    题目74寻找数组的中心下标给你一个整数数组nums,请计算数组的中心下标。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中......
  • 不修改数组找出重复的数字
    14.不修改数组找出重复的数字题给定一个长度为n+1的数组nums,数组中所有的数均在1∼n的范围内,其中n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。数据......
  • 算法 Notes|LeetCode 26. 删除排序数组中的重复项 - easy
    历史LeetCode刷题文章:​​算法Notes|LeetCode349.两个数组的交集-easy​​​​算法Notes|LeetCode14.最长公共前缀-easy​​​​算法Notes|LeetCode1.两数之和......
  • P8287 「DAOI R1」Flame
    这道题,如果使用二分加判环,会变得十分简单。但是如何做到线性复杂度呢?答案是广搜时同时统计答案,因为环的形成肯定是一个个扩散出去的。细节:关于为何\(bfs\)第一个出来......