一个有序的整形数组,给定一个数,在数组中找出两个数的和等于这个数,并打印出来
将有序数组的最小值与最大值进行相加后,与给定数进行比较,如果想等,则在数组中找出两个数之和等与给定数;如果小于给定数,则从小的位置向后移,在进行比较;如果大于给定数,则从大的位置向前移,在进行比较;如果直到开始位置大于结束位置时还没有找到这样的两个数时,输出不存在。
public static void getSumToANum(int arr[],int start,int end,int num){
int[] arr1=new int[2];
while (start<end){
if (num==(arr[start]+arr[end])){
arr1[0]=arr[start];
arr1[1]=arr[end];
break;
}else if (num>(arr[start]+arr[end]))
start++;
else
end--;
}
if (arr1[0]==0&&arr1[0]==0)
System.out.println(\"在数组中不存在两个数之和等于\"+num);
else
System.out.println(arr1[0]+\",\"+arr1[1]);
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

