描述
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回两个数的乘积最小的,如果无法找出这样的数字,返回一个空数组即可。
返回值描述:
对应每个测试案例,输出两个数,小的先输出。
示例1
输入:
[1,2,4,7,11,15],15
返回值:
[4,11]
解题思路
这道题很简单哦~
1、把数组先排序
2、遍历数组,将和第一次等于数字S的记录下来
3、然后加到ArrayList里并返回就好了
代码
import java.util.ArrayList;
import java.util.*;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> a = new ArrayList<Integer> (2);
Arrays.sort(array);
int temp1 = 0;
int temp2 = 0;
int flag = 0;
for(int i = 0; i<array.length; i++){
for(int j = i+1;j<array.length;j++){
if(array[i]+array[j]==sum && flag==0){
temp1 = array[i];
temp2 = array[j];
flag++;
break;
}
}
}
if(temp1!=0&&temp2!=0){
a.add(temp1);
a.add(temp2);
return a;
}else
return a;
}
}