• 散列、贪心总结


    散列

    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、关键是要能想到某道题用贪心的思路来做。

  • 相关阅读:
    Search Insert Position
    lintcode: 最长连续序列
    lintcode:颜色分类
    lintcode: 堆化
    lintcode: 旋转图像
    lintcode: 寻找旋转排序数组中的最小值
    lintcode: 跳跃游戏 II
    lintcode:最小差
    华为:数独填充
    华为:字符集合
  • 原文地址:https://www.cnblogs.com/zhuqiwei-blog/p/8533565.html
Copyright © 2020-2023  润新知