package test;
public class FindNumbersWithSum {
public boolean findNumbersWithSum(int[] data, int length, int sum, int num1, int num2){
boolean found = false;
if(length <1 ){
return true;
}
int ahead = length -1;
int behind = 0;
while(ahead > behind){
long tempSum = data[ahead] + data[behind];
if(tempSum == sum){
num1 = data[behind];
num2 = data[ahead];
System.out.println(num1 +" : "+num2);
found = true;
break;
}else if(tempSum > sum){
ahead--;
}else if(tempSum < sum){
behind++;
}
}
return found;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] data = {1,2,4,7,11,15};
int num1 = 0, num2 =0;
FindNumbersWithSum findNumbersWithSum = new FindNumbersWithSum();
boolean result = findNumbersWithSum.findNumbersWithSum(data, data.length, 15, num1, num2);
System.out.println(result);
}
<pre name="code" class="java">package test;
public class FindContinuousSequence {
public void findContinuousSequence(int sum){
if(sum<3){
return;
}
int small = 1;
int big = 2;
int middle = (1+sum)/2;
int curSum = small+big;
while(small < middle){
if(curSum == sum){
printContinuousSequence(small, big);
}
while(curSum> sum && small <middle){
curSum -=small;
small ++;
if(curSum == sum){
printContinuousSequence(small, big);
}
}
big++;
curSum += big;
}
}
public void printContinuousSequence(int small, int big){
for(int i= small; i<=big; ++i){
System.out.print(i+" ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}