您的位置:首页 > 其它

数组中两两相加等于20的组合种数

2015-07-05 17:05 453 查看
/*
* 如何求数组中两两相加等于20的组合种数
* 对数组排序,时间复杂度为O(nlogn),设置begin和end分别从前向后,从后向前遍历,当arr[being]+arr[end]<20时,
* begin++,大于20时,end--。
*/
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

public class findSum {
public static void findSum(int[] arr,int sum){
Arrays.sort(arr);
int begin=0;
int end=arr.length-1;
while(begin<end){
if(arr[begin]+arr[end]<sum)
begin++;
else if(arr[begin]+arr[end]>sum)
end--;
else{
System.out.println(arr[begin]+","+arr[end]);
begin++;
end--;
}
}
}
public static void main(String[] args){
int arr[]={1,7,17,2,6,3,14};
Scanner input=new Scanner(System.in);
while(System.in!=null){
int sum=input.nextInt();
findSum(arr, sum);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: