散列、贪心总结

散列

1、需要模拟实现散列的情况

     Liner Probing:对H(key)地址 + i 之后 mod Size 得新地址。

     Quadratic probing: 对H(key)地址 + i^2 之后 mod Size 得新地址。

2、使用散列表

     数字哈希:数组可直接使用。

     map<key, val> 配合count方法和insert方法。

     字符串hash:将字符串映射为一个整数,再用该整数作为hash表地址。字符串仅由大写字母构成,则将其视为0-25的数字,转换为26进制。若有大小写,则为52进制。 若再纯大写字母后面指定附着1位数字(ABCD3),则先对字母部分转换整数,再 * 10 + 末位数字。

     单个字符哈希:将ASCII值做映射即可(0 - 127)。

3、   使用散列表时注意防止越界,如已知 hashTB[i],需要寻找 hashTB[ N - hashTB[i] ]。

 

贪心

1、把整个过程分成许多步,在每一步中都选择最优的决策。

2、关键是要能想到某道题用贪心的思路来做。

posted @ 2018-02-03 00:03  ZHUQW  阅读(100)  评论(0编辑  收藏  举报