题目描述
解题思路
哈希表的空间复杂度O(n)
双指针O(1)
算法流程:
- 初始化: 双指针 i , j 分别指向数组 nums 的左右两端 (俗称对撞双指针)。
 - 循环搜索: 当双指针相遇时跳出;
- 计算和 s = nums[i] + nums[j];
 - 若 s > targett ,则指针 jj 向左移动,即执行 j = j - 1 ;
 - 若 s < target ,则指针 ii 向右移动,即执行 i = i + 1 ;
 - 若 s = target ,立即返回数组 [nums[i], nums[j]] ;
 
 - 若循环结束,则返回空数组,代表无和为 targettarget 的数字组合。
class Solution {/*** 双指针法** @param nums* @param target* @return*/public int[] twoSum(int[] nums, int target) {int left = 0;int right = nums.length - 1;while (left <= right) {if (nums[left] + nums[right] > target) {right--;} else if (nums[left] + nums[right] < target) {left++;}else {return new int[]{nums[left],nums[right]};}}return new int[]{};}}
 
