首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java-14.输入一个已经按升序排序过的数组跟一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字

2012-11-09 
java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数

java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字

public class TwoElementEqualSum {/** * 第 14 题:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于 4+11=15 ,因此输出 4 和 11 。 */public static void main(String[] args) {int[] a={1,2,4,7,11,15};find(a,18);}static void find(int[] a,int sum){int i=0;int j=a.length-1;while(i<j){if(a[i]+a[j]>sum){j--;}else if(a[i]+a[j]<sum){i++;}else{System.out.println(a[i]+"+"+a[j]+"="+sum);return;}}System.out.println("not found");}}

热点排行