今天的每日一题需要用到哈希表,之前每次看到哈希表的题都是跳过的,既然这次躲不开了,就学习了一下哈希表。学习没有很深入,先描述一下我对哈希表使用的理解。
C++ 中, 使用 unordered_map<int,bool> map; 来建立一个哈希表,其中第一个int表示哈希表key值的数字形式,用于记录他的存储位置,bool型为存储位置中存储的数字。
这道题给出一个数组,其中包含若干个数字,要求检查数组中是否存在随机的数。若存在,则返回随机的这个数字。这里,可以建立一个哈希表,数组中的数字为key值,通过bool型来表示该数字是否在数组中存在,代码如下:
class Solution {
public:
int findRepeatNumber(vector<int>& nums) {
unordered_map<int,bool> map; //建立一个哈希表
for(int num : nums)
{
if(map[num]) return num; //因为只要求返回一个值
map[num] = true;
}
return -1;
}
};