C演算法 線性探測法

2021-10-04 06:15:00 字數 736 閱讀 5364

leetcode945題,使陣列唯一的最小增量。

給出乙個陣列arr[3,2,1,2,1,7],每次只能某個元素+1,使最後每個元素各不相同。

參考作者題解,有那麼一點並查集的味道。

1、申請乙個陣列tmp,初始化為-1;

2、如果b=arr[i],在tmp的下標中沒有存,那麼直接放進去,並且置為b+1。暗示下次如果還有這個元素想來這個坑,需要去b+1處找找位子。

3、如果已經存過loc = tmp[b]已經有資料了,那麼去找loc是否有戲,如果沒戲,就去找tmp[loc]給出的位置。另外,不要忘記對中間的這些tmp[loci]進行重新整理

#define maxlen 50002

intminincrementforunique

(int

* a,

int asize)

sum =0;

for(i =

0; i < asize; i++

) locstead = loc = tmp[b]

;//b給的提示

if(tmp[loc]==-

1)while

(tmp[loc]!=-

1)while

(tmp[locstead]!=-

1)tmp[loc]

= loc +1;

sum +

= loc - b;

}return sum;

}

雜湊 線性探測法

time limit 1 secs,memory limit 256 mb 使用線性探測 法 linear probin g 可以解決雜湊中的衝突問題,其基本思想是 設雜湊函式為 h key d,並且假定雜湊的儲存結構是迴圈陣列 則當衝突發生時 繼續探測 d 1,d 2 直到衝突得到解決 例如,現有...

雜湊之線性探測法

資料結構實驗之查詢七 線性之雜湊表 time limit 1000ms memory limit 65536kb problem description 根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h key key p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重...

C語言 生成雜湊表 線性探測法

直接定址法 數字分析法 平方取中法 除留餘數法 隨機數法 開放定址法 線性探測法,二次探測法,隨機探測法 再雜湊函式法 鏈位址法 拉鍊法,雜湊桶 公共溢位區法 宣告定義 include include include define field 1 define null 32768 typedef ...