I have tried using mostly all of the solutions present online including Stack Overflow, I have tried using <stdint.h>, <cstdint> <limits.h> <climits> nothing works! I am using gcc version: gcc version 6.3.0 (MinGW.org GCC-6.3.0-1) if I am using INT32_MAX the program works but I am not getting the desired output. What should I do?
the program below is Kadane's Algorithm which gives the max possible sum of contiguous subarray as the answer.
- when using
INT32_MINI get the answer:132(the output changes on every run idk how and why) Expected Ans:6.
explanation: max possible sum of contiguous subarray : [4,-1,2,1] = 6.
- When Using
<climits>I get the answer:54686(output changes on every run idk how and why) and not6
I am preparing for competitive coding interviews what should I do if I face similar issues in my exams?
#include<iostream>
#include<climits>
#include<cstdint>
#include<stdint.h>
#include<limits>
using namespace std;
int main()
{
int a[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
int n = sizeof(a) / sizeof(a[0]);
int local_max = 0;
int global_max = INT_MIN;
for(int i=0; i<n; i++)
{
local_max = max(a[i], a[i] + local_max);
if(local_max > global_max)
{
global_max = local_max;
}
}
cout<<global_max<<endl;
return 0;
}

Aucun commentaire:
Enregistrer un commentaire