0

我正在学习如何在哈希函数中实现线性探测。下面的代码超出了错误时间限制,如何改进此代码?

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
4

0 回答 0