美文网首页
算法----找出重复数字

算法----找出重复数字

作者: 咕哒咕 | 来源:发表于2021-02-24 14:00 被阅读0次

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

※可能附加时间/空间需求

相关标签:数组

eg.

输入:
[1, 3, 1, 0, 2, 5, 3]
输出:1 或 3 

解法一:

依次遍历数组,创建空集合,每次将遍历的元素放入集合,如果加入成功则继续,加入失败,表示存在重复元素,返回该元素。

class Solution {
 public int findNum(int[] nums) {
       Set<Integer> set = new HashSet<Integer>();
       int repeat = -1;
       for (int num : nums) {
         if (!set.add(num)) {
           repeat = num;
           break;
         }
       }
       return repeat;
     }
}

解法二:

原地置换方法,读题可知,长度为你,元素都在0~n-1范围内,无重复元素情况下,正常升序排序,元素和下标一一对应。在有重复元素情况下,一次使用每一元素置换,直到置换到相应下标的为止,进行循环,如果循环中碰到置换后依旧相等的情况,就查找到了重复元素。

image-20210223114803461.png
class Solution {
    public int findRepeatNumber(int[] nums) {
       int temp;
       for(int i = 0;i<nums.length;i++){
           while(nums[i] != i){
              if(nums[i] == nums[nums[i]]){
                  return nums[i];
              }
              temp = nums[i];
              nums[i] = nums[temp];
              nums[temp] = temp;
           }
       }
       return -1;
    }
}

相关文章

  • 算法----找出重复数字

    在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个...

  • java如何找出数组中的不重复数字

    java如何找出数组中的不重复数字 找出数组中不重复的一个数字,题目大致是这样的: 1int[] a = { 1,...

  • 2019-08-04-数组算法

    找出数组中重复的数字 1,题目:长度为n+1的数组中保存这1-n的数字,找出其中任意一个重复的数字,并输出 空间换...

  • 剑指offer4J【C2 P3】找出数组中重复数字

    题目 找出数组中重复的数字数组中数字都在0~n之间,其中有些数字是重复的,但不知道谁重复,可能有1到多个重复的数字...

  • 剑指offer_数组中重复的数字

    找出数组中重复的数字 1、题目一:找出数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 ...

  • Leetcode.287.Find the Duplicate

    题目 给定n+1个数字,数字都是从1~n的数字,这些数字只有1个重复数字,找出重复数字。要求:空间复杂度为O(1)...

  • 剑指offer题集

    [3] 数组中重复的数字 题目一:找出数组中重复的数字 Description 在一个长度为n的数组里的所有数字都...

  • 《剑指Offer》之数据结构篇

    1. 长度为n数组,数字在 0~n-1 范围内,找出数组中任意一个重复的数 O(n) 2. 不修改数组找出重复数字...

  • 3.数组中重复的数字

    找出数组中任意一个重复的数字! 思路1:把数组排序,从排序后的数组中找出重复的数字。但排序一个长度为n的数组需要O...

  • LeetCode 每日一题 [38] 数组中重复的数字

    LeetCode 数组中重复的数字 [简单] 找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数...

网友评论

      本文标题:算法----找出重复数字

      本文链接:https://www.haomeiwen.com/subject/sdlsfltx.html