【发布时间】:2021-03-16 07:45:03
【问题描述】:
大家好,这是来自hackerrank的问题链接 hackerrank problem
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
long int sizeArr, operation;
cin>>sizeArr>>operation;
long int array[sizeArr];
for(long int i=0;i<sizeArr;i++)
array[i]=0;
for(long int i=0;i<operation;i++)
{
long int a,b,k;
cin>>a>>b>>k;
for(long int j=a-1;j<=b-1;j++)
array[j]+=k;
}
sort(array,array+sizeArr);
cout<<array[sizeArr-1];
}
我是这样编码的,另一个人是这样编码的
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
long int N,M,a,b,k,i,j,max=0,x=0;
cin>>N>>M;
long int *Arr = new long int[N+1]();
for(i=0;i<M;i++)
{
cin>>a>>b>>k;
Arr[a]+=k;
if((b+1)<=N) Arr[b+1]-=k;
}
for(i=1;i<=N;i++)
{
x=x+Arr[i];
if(max<x) max=x;
}
cout<<max;
return 0;
}
我的第一个没有清除所有测试用例,但第二个的代码清除了。任何建议。
【问题讨论】:
-
你的代码是错误的,另一个产生正确的输出?你有什么问题?
-
首先使用 VLA 扩展(所以没有标准 C++),其次泄漏内存...
-
请注意,其他代码效率更高:O(n + op),如果 op 是操作数。您可能有时间限制问题
标签: c++ arrays data-structures stl iteration