题目
原始地址:https://leetcode.com/problems/two-sum/
|
|
描述
给定一个int数组和一个指定的值target,要求找出数组中和为target的两个数(只有一组),并返回这个两个数的index值。
分析
看到题目最直接想到的是O(N2)的解法:遍历整个数组,取出nums[i]的值a,再查找nums[j]的值为(target-a),最终得到i和j的值。然而这样的时间复杂度显示是不能令人满意的。那么我们考虑一下,如何优化算法呢?
本题目中,搜索效率是问题的关键。如何提高搜索效率呢?当然是哈希表。由于题目已经保证有且只有一组解,那么我们可以用每组键值对保存数组中的一个数值和其对应的index,这样查找只需要O(1)即可完成,整体的时间复杂度为O(N)。
解答
|
|