给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]
方法一:双for循环
比较耗时,时间复杂度为O(n^2),不推荐使用
方法二:两次哈希表,空间换时间
用两个哈希表取值判断;因为不能重复利用同一个值,所以Hash[target-value] != i;时间复杂度为O(n)
方法三:一次哈希表
方法二的优化版;因为结果元素都源于数组,所以直接找符合差的元素即可
方法四:换成object储存
数组换成对象储存,性能较快
网友评论