LeetCode-Easy-Two sum problem

####原题目
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
```cpp
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
```
自己的第一遍解法
没有成功,连暴力破解都没有想到,走的思路是先进行快排,然后用二分查找,找到与目标数最接近或者是本身,再对区间内的数字进行检查。暂无代码
网上好的解法
三种方法,一种是暴力破解,另两种都是hash
第一种暴力破解
在暴力破解中遇到的问题,两个指数指针未放好(造成了自己加上自己的错误),且自作聪明将其排序。
第二种解法
使用hash,并使用c++stl库中的unorder-map无序容器
hash思路清晰,主要思路是
将检测数组中的元素一个个与hash无序中的元素比对,其中使用find操作,加快速度,而未找到时,就将key与vaule再次放入。
获得的思考:
这种题目,就我目前来看就是数的匹配问题,这种问题用hash算法最好,因为能用key值将其编排出来,然后能找到思路。
posted @ 2020-01-01 21:19  Yekko  阅读(56)  评论(0编辑  收藏  举报