package com.interview.array;
/**
* http://www.geeksforgeeks.org/find-subarray-with-given-sum/
*/
public class SubarrayWithGivenSum {
class Pair{
int start;
int end;
public String toString(){
return start + " " + end;
}
}
public Pair findSubArray(int input[],int sum){
int currentSum = 0;
Pair p = new Pair();
p.start = 0;
for(int i=0; i < input.length; i++){
currentSum += input[i];
p.end = i;
if(currentSum == sum){
return p;
}else if(currentSum > sum){
int s = p.start;
while(currentSum > sum){
currentSum -= input[s];
s++;
}
p.start = s;
if(currentSum == sum){
return p;
}
}
}
return null;
}
public static void main(String args[]){
SubarrayWithGivenSum sgs = new SubarrayWithGivenSum();
int input[] = {6,3,9,11,1,3,5};
System.out.println(sgs.findSubArray(input,15));
}
}