LeetCode(剑指 Offer)- 03. 数组中重复的数字

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 03. 数组中重复的数字相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路

相关企业

  • 亚马逊(Amazon)

AC 代码

  • Java
// 解决方案(1)
class Solution 
    public int findRepeatNumber(int[] nums) 
        int[] cnt = new int[nums.length];
        for (int i = 0; i < nums.length; i++) 
            if (cnt[nums[i]] > 0) 
                return nums[i];
            
            cnt[nums[i]]++;
        
        return -1;
    


// 解决方案(2)
class Solution 
    public int findRepeatNumber(int[] nums) 
        int i = 0;
        while(i < nums.length) 
            if(nums[i] == i) 
                i++;
                continue;
            
            if(nums[nums[i]] == nums[i]) return nums[i];
            int tmp = nums[i];
            nums[i] = nums[tmp];
            nums[tmp] = tmp;
        
        return -1;
    
  • C++
class Solution 
public:
    int findRepeatNumber(vector<int>& nums) 
        int i = 0;
        while(i < nums.size()) 
            if(nums[i] == i) 
                i++;
                continue;
            
            if(nums[nums[i]] == nums[i])
                return nums[i];
            swap(nums[i],nums[nums[i]]);
        
        return -1;
    
;

以上是关于LeetCode(剑指 Offer)- 03. 数组中重复的数字的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(剑指 Offer)- 03. 数组中重复的数字

LeetCode(剑指 Offer)- 03. 数组中重复的数字

LeetCode1269. 停在原地的方案数 / 剑指 Offer 38. 字符串的排列 / 216. 组合总和 III / 剑指 Offer 39. 数组中出现次数超过一半的数字/229. 求众数(

LeetCode692. 前K个高频单词 / 剑指 Offer 50. 第一个只出现一次的字符 / 剑指 Offer 51. 数组中的逆序对 / 2. 两数相加

[LeetCode]剑指 Offer 49. 丑数

[LeetCode]剑指 Offer 49. 丑数