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

Posted 追梦赤子心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入一个已经按升序排序的数组和一个数字 ,在数组中查找两个数,使得他们的和是输入的那个数字相关的知识,希望对你有一定的参考价值。

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

}

 

以上是关于输入一个已经按升序排序的数组和一个数字 ,在数组中查找两个数,使得他们的和是输入的那个数字的主要内容,如果未能解决你的问题,请参考以下文章

js数组操作方法

c程序输入10个数到一维数组中,按升序排序后输出。

按升序排列2d数组中的数字,然后在1d中显示它

nodejs中对于数组的相关处理

算法题 求时间复杂度

js数组排序的六种方法