sark.rahul
BAN USERvoid findFirstMissing(int a[], int s,int e)
{
int m = (s+e)>>1;
if(m==s){
if(a[e]-a[s]>1) cout<<"Missing number"<<a[s]+1<<endl;
return;
}
int diff = m-s+1;
if((a[m]-a[s]+1)>diff) {
findFirstMissing(a,s,m);
}
else {
diff = e-m+1;
if((a[e]-a[m]+1)>diff) {
findFirstMissing(a,m,e);
}
}
}
void maxSum(int a[], int n)
{
int max=-9999, curr=0,start=0,end=0,currentstart=0;
for(int i=0;i<n;i++)
{
curr+=a[i];
if(curr>max)
{
max = curr;
start=currentstart;
end = i;
}
else if(curr<0)
{
currentstart=i+1;
curr=0;
}
}
cout<<max<<" "<<start<<" "<<end<<endl;
}
log(n) solution is possible.
- sark.rahul December 09, 2012