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");
	}
}

你可能感兴趣的:(java)