c++ – heap-buffer-overflow error leetcode question
I tried partition-equal-subset-sum problem on leetcode. But getting heap-buffer-overflow error.
I don’t think my code is going out of bound.
I am attaching link for the question : leetcode.com/problems/partition-equal-subset-sum/
As well as the code itself.
bool subset(vector<int>& nums, int sum) {
int n = sizeof(nums);
bool dp[n+1][sum+1];
for(int i=0;i<=n;i++){
for(int j=0;j<=sum;j++){
if(i==0){
dp[i][j]= false;
}
if(j==0){
dp[i][j]= true;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=sum;j++){
if(nums[i-1]<=j){
dp[i][j] = dp[i-1][j-nums[i-1]] || dp[i-1][j];
}
else if(nums[i-1]>j){
dp[i][j] = dp[i-1][j];
}
}
}
return dp[n][sum];
}
bool canPartition(vector<int>& nums) {
int sum = 0;
int n = sizeof(nums);
for(int i=0;i<=n;i++){
sum = sum + nums[i];
}
if(sum %2 !=0){
return false;
}
else{
return subset(nums,sum/2);
}
}
Read more here: Source link