167.两数之和-ii-输入有序数组
小于 1 分钟
167.两数之和-ii-输入有序数组
/*
* @lc app=leetcode.cn id=167 lang=typescript
*
* [167] 两数之和 II - 输入有序数组
*/
// @lc code=start
// 双指针解法
// function twoSum(numbers: number[], target: number): number[] {
// // numbers是递增数组,且元素不重复
// let l: number = 0;
// let r: number = numbers.length - 1;
// let res: number[] = [];
// // 双指针
// while (l < r) {
// if (numbers[l] + numbers[r] > target) {
// r--;
// } else if (numbers[l] + numbers[r] < target) {
// l++;
// } else {
// res = [l + 1, r + 1];
// break;
// }
// }
// return res;
// }
function twoSum(numbers: number[], target: number): number[] {
let map = new Map();
for (let i = 0; i < numbers.length; i++) {
map.set(numbers[i], i);
}
let i = 0;
let res: number[] = [];
while (i < numbers.length) {
if (map.has(target - numbers[i])) {
res = [i + 1, map.get(target - numbers[i]) + 1];
break;
}
i++;
}
return res;
}
twoSum([-5, -3, 0, 2, 4, 6, 8], 5);
// @lc code=end
Loading...
