我正在学习如何在哈希函数中实现线性探测。下面的代码超出了错误时间限制,如何改进此代码?
vector<int> linearProbing(int hashSize, int arr[], int sizeOfArray)
{
vector<int> hash(hashSize,-1);
for(int i=0;i<sizeOfArray;i++){
int h = arr[i]%hashSize;
for(int j=0;j<sizeOfArray;j++){
if(hash[h]==-1 or arr[i]==hash[h]){
hash[h]=arr[i];
break;
}
else
h=(h+1)%hashSize;
}
}
return hash;
}
Constraints:
1 <= hashSize <= 100
1 <= sizeOfArray <= 100
0 <= arr[] <= 10^5
Expected time limit 2.28s