maxsum of subarray: Kadanes Algo
#include <iostream>
#include <bits/stdc++.h>
#include <climits>
using namespace std;
void display(int *arr, int n){
for(int i=0;i<n;i++){
cout<<arr[i];
}
}
int main() {
int arr[]={-1,4,7,2};
int n=sizeof(arr)/sizeof(int);
int maxsum=INT_MIN;
int sum=0;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
sum=0;
for(int k=i;k<=j;k++){
// cout<<arr[k]<<" ";
sum=sum+arr[k];
}
maxsum=max(maxsum,sum);
cout<<endl;
}
}
cout<<maxsum;
return 0;
}
/////////////////optimized/////////////////
#include <iostream>
#include <bits/stdc++.h>
#include <climits>
using namespace std;
void display(int *arr, int n){
for(int i=0;i<n;i++){
cout<<arr[i];
}
}
int main() {
int arr[]={-4,4,-6,20,10,-11,12};
int n=sizeof(arr)/sizeof(int);
int maxsum=INT_MIN;
int sum=0;
//int arr_sum[n];
for(int i=0;i<n;i++){
//sum=0;
sum=sum+arr[i];
if(sum<0){
//sum=sum+arr[i];
sum=0;
}
maxsum=max(sum,maxsum);
//sum=sum+arr[i];
//arr_sum[i]=sum;
}
cout<<maxsum;
return 0;
}
Comments
Post a Comment