587.Two Sum - Unique pairs
1.Description(Medium)
2.Code
public int twoSum6(int[] nums, int target) {
if(nums==null || nums.length<2){
return 0;
}
Arrays.sort(nums);
int result=0;
int head=0;
int tail=nums.length-1;
while(head<tail){
int sum=nums[head]+nums[tail];
//这里先判断sum==target,因为不等于的话--或者++不影响结果
if(sum==target){
result++;
head++;
tail--;
//这里因为head和tail已经先变化了,所以要注意比较的对象
while(head<tail && nums[head]==nums[head-1]){
head++;
}
while(head<tail && nums[tail]==nums[tail+1]){
tail--;
}
}
else if(sum>target){
tail--;
}else{
head++;
}
}
return result;
}Last updated