码迷,mamicode.com
首页 > 编程语言 > 详细

输入一个已经按升序排序的数组和一个数字 ,在数组中查找两个数,使得他们的和是输入的那个数字

时间:2017-09-22 23:54:07      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:logs   sys   begin   system   []   return   amp   string   blog   

package shuzu;
/*
 * 输入一个已经按升序排序的数组和一个数字
 * 在数组中查找两个数,使得他们的和是输入的那个数字,要求时间复杂度为o(n)
 * 如果有多对数字的和等于输入的数字,输出任意一对即可。
 */
public class demo1 {
    private static void findAns(int[] data,int sum) {
        int size=data.length;
        int begin =0;
        int end=size-1;
        while(begin < size && end >= 0 && begin < end) {
            int cu = data[begin] + data[end];
            if(cu > sum) {
                end--;
            }else if(cu < sum) {
                begin++;
            }else {
                System.out.println(data[begin]+","+data[end]);
                return;
            }
        }
        System.out.println("无法匹配项");
    }
    
    public static void main(String[] args) {
        int a[]= {1,3,5,8,12,15};
        findAns(a, 15);
    }

}

 

输入一个已经按升序排序的数组和一个数字 ,在数组中查找两个数,使得他们的和是输入的那个数字

标签:logs   sys   begin   system   []   return   amp   string   blog   

原文地址:http://www.cnblogs.com/liuzhenping/p/7577490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!