查找表法
经典题目为两数之和。
需要求得两数之和为X的数组a的索引i, j。
抽象来说,这是一个查找的过程。在索引i处,查找X - a[i]的索引j。
方法:
构建一个哈希表,key是数组的值,value是数组的索引。
接着遍历数组,然后在哈希表中找X - a[i]。找到,就返回i, j。
时间复杂度为 O(n)。(O(2n))
进一步优化,可以边构建边查找。
即如果没有在哈希表中找到X - a[i],则把a[i]放入哈希表中。
2023-10-21 08:32:58
查找表法
经典题目为两数之和。
需要求得两数之和为X的数组a的索引i, j。
抽象来说,这是一个查找的过程。在索引i处,查找X - a[i]的索引j。
方法:
构建一个哈希表,key是数组的值,value是数组的索引。
接着遍历数组,然后在哈希表中找X - a[i]。找到,就返回i, j。
时间复杂度为 O(n)。(O(2n))
进一步优化,可以边构建边查找。
即如果没有在哈希表中找到X - a[i],则把a[i]放入哈希表中。
下一篇:算法模板