/*961. 在长度 2N 的数组中找出重复 N 次的元素
已解答
简单
给你一个整数数组 nums ,该数组具有以下属性:
nums.length == 2 * n.
nums 包含 n + 1 个 不同的 元素
nums 中恰有一个元素重复 n 次
找出并返回重复了 n 次的那个元素。
示例 1:
输入:nums = [1,2,3,3]
输出:3
示例 2:
输入:nums = [2,1,2,5,3,2]
输出:2
示例 3:
输入:nums = [5,1,5,2,5,3,5,4]
输出:5
提示:
2 <= n <= 5000
nums.length == 2 * n
0 <= nums[i] <= 104
nums 由 n + 1 个 不同的 元素组成,且其中一个元素恰好重复 n 次
*/
class Solution {
public:
//由于条件为2 * n长度的数组包含 n + 1 个 不同的 元素,且恰有一个元素重复 n 次。则所求的重复n次的目标元素为唯一多次出现的相等的元素。需要存储所有不相等的元素,将当前元素与已经遍历的相等的所有元素遍历是否相等。如果相等则返回该值,不等则存储该值进已遍历的不重复的元素。
int repeatedNTimes(vector<int>& nums) {
vector<int> prev_nums;
prev_nums.push_back(nums[0]);
for(int i=1;i<nums.size();i++){
for(int j=0;j<prev_nums.size();j++){
if(nums[i]==prev_nums[j])
{
return nums[i];
}
}
prev_nums.push_back(nums[i]);
}
return nums[0];
}
};
标签:相等,961,nums,重复,元素,示例,数组,2N,LeetCode
From: https://www.cnblogs.com/AmyMoJianJun/p/18299867