输入一个递增排序的数组和一个数字 s


题目:

输入一个递增排序的数组和一个数字 s。

在数组中查找两个数,使得它们的和正好是 s。

如果有多对数字的和等于 s,输出任意一对即可。

 

 

解答:

 1 public class Solution {
 2 
 3     public static void main(String[] args) {
 4         int[] data = {1,2,4,7,11,15};
 5         System.out.println(findNumberWithSum(data, 15));
 6     }
 7 
 8     private static boolean findNumberWithSum(int[] data, int sum) {
 9         boolean found = false;
10         if(data == null) {
11             return found;
12         }
13 
14         int num1 = 0;
15         int num2 = 0;
16 
17         int start = 0;
18         int end = data.length-1;
19         while(start < end) {
20             int curSum = data[start] + data[end];
21             if(curSum == sum) {
22                 num1 = data[start];
23                 num2 = data[end];
24                 found = true;
25                 break;
26             } else if(curSum > sum) {
27                 end--;
28             } else {
29                 start++;
30             }
31         }
32 
33         System.out.println(num1);
34         System.out.println(num2);
35 
36         return found;
37     }
38 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 22、有一个已排好序的数组,要求输入一个数字后,按原来的排序规律将它插入数组 python 输入一个数组,输出该数组的第二大的数字 C#设计一个简单的Windows程序,输入5个数字,然后排序并输出 输入一个数,并判断这个数字是奇数还是偶数 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 删除数组元素 功能描述:有一个有序整数数组,要求输入一个数字, 在数组中查找是否有这个数,如果有,将该数从数组中删除, 要求删除后的数组仍然保持有序; js基于另一个数组排序数组 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM