给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组
int[] num = {1,2,2,3,4,5,6,7,8,9};
使用两层循环必定可以解决这个问题,但是因为是两个数据求和,在集合有序的情况下使用一次循环就可以解决这个问题。
思路如下:
因为数组有序这,可以让数组从两头开始向加。
代码如下
public static void main(String[] args) {
int[] num = {1,2,2,3,4,5,6,7,8,9};
int sum = 10;
int i = 0;
int j = num.length - 1;
while (i < j){
if( num[i] + num[j] > sum){
j --;
}
if( num[i] + num[j] < sum){
i ++;
}
if( num[i] + num[j] == sum){
System.out.println(num[i] + "---" + num[j]);
}
i ++;
}
}