小编Hua*_*uan的帖子

Hackerrank 子数组求和问题 - 超时测试用例

这是来自 hackerrank 的一个问题,我有一个解决方案,但有一些测试用例由于超出时间限制而失败。我不知道更好的解决方案。

求子数组中元素的总和(如果子数组中有 0,则 sum = sum + number x)

输入:数字:主数组(1-索引)

查询:

   array of query: left index, right index, number x(0-indexed)
Run Code Online (Sandbox Code Playgroud)

输出:

与查询相对应的总和数组。

我对 C++ 代码的解决方案:

vector<long> findSum(vector<int>numbers, vector<vector<int>> queries)
{
   vector<long>result;
   long sum = 0;
   int count = 0;
   for(auto i : queries)
   {
      sum = 0;
      count = 0;
      int l = i[0] - 1;
      int r = i[1]-1;
      int x = i[2];
      for(int j =l; j<r;j++)
      {
         sum+=numbers[j]==0?x:numbers[j]; 
      }
      result.push_back(sum);
   }
   return result;
}
Run Code Online (Sandbox Code Playgroud)

algorithm

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

algorithm ×1