用时间复杂度O(n)算法解(类似HashMap):
function twoSum(nums: number[], target: number): number[] {
const arr = [];
const result = [];
nums.forEach((item, index) => {
// 用值当index来缓存,这样读取效率就是O(1)
arr[item] = index;
})
nums.forEach((item, index) => {
const i = arr[target - item];
if(i !== undefined && i !== index) {
result.push(index, i);
arr[target - item] = undefined;
arr[item] = undefined;
}
})
return result;
};