题目描述:
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.
样例:
1 | Given nums = [2, 7, 11, 15], target = 9, |
题意:
给你一个 int 类型的数组,找到数组中的两个数字,相加的和为题目中给出的特定目标,并返回这两个数字在数组中的下标,注意:同样的数字不能重用。
思路:
可以换个角度来考虑问题,如果给定的数组是已排序的数组,那么就可以设定 left 和 right 两个指针,如果这两个数字的和比 target 要大,那么就 right – ,否则 left ++。这样排序数组需要O(N * logN),找和的过程需要O(N)。
这里附上我刚刚过的代码:
1 | class Solution { |
Runtime:4ms Memory:N/A
faster than 100.00%
然后其他道友们是这样写的,我觉得写的真的超级简洁,感觉超棒.jpg
其实蚊子觉得思路是一样的,但是就是写起来感觉超简洁,超喜欢.jpg
1 | class Solution { |
Runtime:12ms Memory:10.1MB
faster than 93.91%