Skip to content

Commit a176cf4

Browse files
committed
Update two-sum.md
1 parent b496201 commit a176cf4

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

analysis/two-sum.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
##Two Sum [ [sourcecode](../src/TwoSum.cpp) | [problem](https://oj.leetcode.com/problems/two-sum/) ]
88

99
##分析
10-
>这个题目看上去很简单,就是在一堆数里面找两个数,使得他们的和为给定的值。但是,其实这个题目要求比较高,而且坑很多。首先如果想要AC,>普通的暴力枚举是不行的,因为时间复杂度是O(n^2)。
11-
>那还有两种方法:
12-
1. 先排序,O(nlgn),然后遍历每个元素v,计算target-v,然后二分搜索target-v,不过因为需要输出序号,所以要注意的时排序的时候需要存储序号一起排序。
10+
这个题目看上去很简单,就是在一堆数里面找两个数,使得他们的和为给定的值。但是,其实这个题目要求比较高,而且坑很多。首先如果想要AC,普通的暴力枚举是不行的,因为时间复杂度是O(n^2)。
11+
那还有两种方法:
12+
13+
>1. 先排序,O(nlgn),然后遍历每个元素v,计算target-v,然后二分搜索target-v,不过因为需要输出序号,所以要注意的时排序的时候需要存储序号一起排序。
1314
2. hash表。建立hash表,记录每个值的下表位置。例如,1,2,3,1,那hash表结构如下{1:[1,4],2:2,3:3}.然后遍历每个元素v,hash表里找target-v对应的下标,如果有和v不是相同下标的,那就是答案了。
1415

1516
###坑:

0 commit comments

Comments
 (0)