哈希表

44 阅读1分钟

哈希表理论基础

  1. 什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。
  2. 哈希表常用的三种数据结构。
  • 数组(一般有字母时使用)
  • set
  • map
  1. 集合的选取:

image.png

三数之和、四数之和

在三数之和中,双指针法就是将原本暴力O(n^3)的解法,降为O(n^2)的解法,四数之和的双指针解法就是将原本暴力O(n^4)的解法,降为O(n^3)的解法。那么一样的道理,五数之和、六数之和等等都采用这种解法;

注意:

  • 去重剪枝(加快速度)。
  • 两数之和 就不能使用双指针法,因为1.两数之和 (opens new window)要求返回的是索引下标, 而双指针法一定要排序,一旦排序之后原数组的索引就被改变了。
  • 具体思路:先排序,从头开始一个for循环,对每一个位置i设置首尾left与right指针,通过前后两个指针不断向中间逼近,在一个while循环下完成两个for循环的工作。 四数之和同理,排序后两个for循环加一个while。