LeetCode 167. 两数之和 II - 输入有序数组
2021-04-13 09:28
标签:problems new 链接 后退 分析 else java ++ hash 167. 两数之和 II - 输入有序数组 非常简单的一个题目,因为给定的是一个有序数组,我们可以直接使用双指针思想去寻找两个目标元素。如果num[left] + num[right]==target 就保存循环结果然后退出循环,否则就看大小移动left或者right指针。 LeetCode 167. 两数之和 II - 输入有序数组 标签:problems new 链接 后退 分析 else java ++ hash 原文地址:https://www.cnblogs.com/ZJPaang/p/13343224.html题目链接
题目分析
其实这个题还可以做二分查找 ,我们外层循环使用一个i去遍历0~num.length-2这么多的元素,然后我们在内层使用二分查找,查找target-num[i]是否在数组i~num.length-1中,存在的话就保存结果然后退出循环。
这个题其实是1. 两数之和的变种,第一题的输入数据是无序的,但是如果我们预处理输入数组后,也会变成这题的做法。对于第一题,我们最好的方法就是使用一个hashmap作为缓存,只需要一个O(n)的时间复杂度就可以完成解题。代码实现
class Solution {
public int[] twoSum(int[] numbers, int target) {
int[] res = new int[2];
int left = 0;
int right = numbers.length - 1;
while(left target){
right--;
}else if(numbers[left] + numbers[right]
文章标题:LeetCode 167. 两数之和 II - 输入有序数组
文章链接:http://soscw.com/index.php/essay/75133.html