每日编程-447期Leetcode.961.重复N次的元素

Posted 灰灰考研

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日编程-447期Leetcode.961.重复N次的元素相关的知识,希望对你有一定的参考价值。



961.重复N次的元素




在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。

返回重复了 N 次的那个元素。

示例 1:

输入:[1,2,3,3]
输出:3

示例 2:

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

示例 3:

输入:[5,1,5,2,5,3,5,4]
输出:5

提示:

  1. 4 <= A.length <= 10000

  2. 0 <= A[i] < 10000

  3. A.length 为偶数


解决方法:

(1)算法的基本思想:

算法一:
暴力解法。

算法二:
数组大小2N,一共N+1个元素,目标元素出现N次,说明其他元素只出现一次,那么只要找出现过两次的元素就是目标元素,创建一个数组当作桶,初始化所有值为0,顺序遍历数组每一个元素,并且使出现过的每一个元素对应位置的桶自增,当出现桶里数值为2的元素,就是目标元素。


链接:https://leetcode-cn.com/problems/two-sum/solution/36msjie-by-ge-lu/

来源:力扣(LeetCode)

(2)代码实现:

  
    
    
  
class Solution {
public:
    int repeatedNTimes(vector<int>& A) {
        int N[10001] = {0};
        for(auto i : A){
            N[i] += 1;
        }
        for(int j = 0; j < 10001;j++){
            if(N[j] == A.size()/2)
                return j;
        }
        return 0;
    }
};

class Solution {
public:
    int repeatedNTimes(vector<int>& A) {
        int N[10001] = {0};
        for(auto i : A){
            N[i]++;
            if(N[i] == 2)
                return i;
        }
        return 0;
    }
};


明日预告:Leetcode.908.最小差值
给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中。


在此过程之后,我们得到一些数组 B。


返回 B 的最大值和 B 的最小值之间可能存在的最小差值。

样例一:

输入:A = [1], K = 0
输出:0
解释:B = [1]

样例二:

输入:A = [0,10], K = 2
输出:6
解释:B = [2,8]

样例三:

输入:A = [1,3,6], K = 3
输出:0
解释:B = [3,3,3] 或 B = [4,4,4]

提示:

  1. 1 <= A.length <= 10000

  2. 0 <= A[i] <= 10000

  3. 0 <= K <= 10000



以上是关于每日编程-447期Leetcode.961.重复N次的元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode961 重复 N 次的元素

LeetCode 961 在长度2N的数组中找出重复N次的元素[map] HERODING的LeetCode之路

LeetCode 961. N-Repeated Element in Size 2N Array

leetcode961. 在长度2N的数组中找出重复N次的元素

Leetcode 961. N-Repeated Element in Size 2N Array

Leetcode 961. N-Repeated Element in Size 2N Array