leetcode——两数之和
leetcode地址:
https://leetcode-cn.com/problemset/all/
刷题第一题:两数之和
个人思路:
1、暴力尝试,双层for循环遍历数字,将满足的直接返回(时间复杂度高,n方级别)代码略
2、先排序,排完序后用前后两个指针计算是否和target相等,相等则返回;不等且大约target,后面的指针前移;否则前面的指针后移;直到获取到和target相等的值或者指针相遇
时间复杂度取决于排序算法的时间复杂度
注意:题目要求返回数组下标,所以排序时数组下标也要同步交换;占空间复杂度高。代码略
正解:
使用map
一次循环数组,判断target-nums[index]是否在map中,如果在,直接从map中获取对应的value值和当前index;否则将当前nums[index],index put进map中
时间复杂度为n