参考:
1.unordermap
题目

解法一
排序然后检测寻找临近元素是否一致,但是内存消耗会比较大。
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
sort(nums.begin(),nums.end());
for (int i = 1; i < nums.size(); i++)
{
if(nums[i-1]=nums[i]){
return nums[i];
}
}
return;
}
};
解法二
哈希表
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
unordered_map<int,int> map;
for (int i = 0; i < nums.size(); i++)
{
if(map.count(nums[i])!=0){//查询hash表中是否存在
return nums[i];
}
else
{
map[nums[i]]=i;//建立hash关系
}
}
return -1;
}
};
这篇博客介绍了两种方法来查找数组中的重复数字。解法一是通过对数组进行排序,然后检查相邻元素是否相同;解法二是利用unordered_map作为哈希表,通过遍历数组快速定位重复元素。这两种方法分别适用于不同场景,排序法内存消耗大但适用于已排序的数据,哈希表法则更高效且适用于未排序的数据。
350

被折叠的 条评论
为什么被折叠?



