当前位置:首页 > 开发 > 编程语言 > Java > 正文

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

发表于: 2012-01-11   作者:bylijinnan   来源:转载   浏览:
摘要: public class TwoElementEqualSum { /** * 第 14 题: 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日
#include <iostream> using namespace std; int main() { int a[9],i; for(i=0;i<9;i++) c
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生
import java.util.Scanner;//需要导入此包,方法很多 class I { public static void main(String[]
import java.util.Scanner;//需要导入此包,方法很多 class I { public static void main(String[]
1. /* 2. * Copyright (c) 2012, 烟台大学计算机学院 3. * All rights reserved. 4. * 作 者:吕建
我的程序: [cpp] view plain copy print ? /* * 程序的版权和版本声明部分: * Copyright (c) 2011,
/* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserv
/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者: (你的名字) *
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号