题目描述:输出所有和为n的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
public void threeSum(int[] nums,int n) {
if(nums == null || nums.length == 0){
return;
}
Arrays.sort(nums);
for(int i = 0;i < nums.length;i++) {
if(nums[i] >= n) {
return;
}
if(i > 0&& arr[i] == arr[i - 1]){
continue;
}
int left = i + 1;
int right = nums.length - 1;
int sum = 0;
while(left < right) {
sum = nums[i] + nums[left] + nums[right];
if(sum == n) {
System.out.println("" + nums[i] + nums[left] + nums[right]);
while(left < right&&nums[left] == nums[left + 1]) {
left++;
}
while(left < right&&nums[right] == nums[right - 1]) {
right--;
}
}else if(sum > n) {
right --;
}else{
left++;
}
}
}
}