【41】递增数组判断是否存在两个树等于给定值

题目:

给定单调递增的整数数组[n0, n1, n2,….,nk] array, 以及目标数T,边写一个算法existSum(array, T),来判定在数组array中,是否存在2个数p, q, 满足p + q = T. 该方法返回1如果存在,否则返回0

思路:

  • 采用双指针的思路,指向第一个和最后一个。start和end,计算两个数的和all。
  • all == T,返回true
  • all < T,start++,all > T,end–

代码:

boolean findNUmberWithSum(int data[] ,int length,int T){
        boolean found = false;
        if(data == null || length < 1)return found;
        int start = 0;
        int end = length -1;
        while(start < end){
            int all = data[start]+data[end];
            if(all == T){
                found = true;
                break;
            }
            if(all < T){
                start++;
            }
            if(all > T){
                end--;
            }
        }
        return found;   
        }

欢迎入群:

公众号IT面试题汇总讨论群

【41】递增数组判断是否存在两个树等于给定值_第1张图片

如果扫描不进去,加我微信(rdst6029930)拉你。

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

【41】递增数组判断是否存在两个树等于给定值_第2张图片

你可能感兴趣的:(数据结构,算法,面试,数组)