我正试图在二维矢量中获得最大输出

  • 本文关键字:输出 二维 c++
  • 更新时间 :
  • 英文 :


我正在尝试在类似的2d数组中获得最大输出输入:accounts=[[1,2,3],[3,2.1]]输出:6说明:第一位客户的财富=1+2+3=6第二位客户拥有财富=3+2+1=6两位客户都被认为是最富有的,每人拥有6笔财富,所以回报6。

电流输入=[[1,2,3],[3,2,1]];

电流输出=12;

预期输出=6;

我不明白它为什么给12。

class Solution {
public:
int maximumWealth(vector<vector<int>>& accounts) 
{
int max , temp = 0;
for(int i=0;i<accounts.size();i++)
{
for(int j=0;j<accounts[i].size();j++)
{
temp = temp + accounts[i][j];
}
if(temp > max)
{
max = temp;
}
}
return max;
}
};

更新:

现在输入:[[1,2,3],[3,2.1]]

电流输出:1849672928

预期输出:6

您需要在内部循环之前重新初始化数组的和计数器:

for(int i=0;i<accounts.size();i++)
{
temp = 0; // re-initialise before taking every array/account's sum here
for(int j=0;j<accounts[i].size();j++)
{
temp = temp + accounts[i][j];
}
if(temp > max)
{
max = temp;
}
}

此外,您应该将max变量初始化为一个非常小的值,例如INT_MIN或仅为0(如果没有负元素(。

#include <climits>
int max = INT_MIN, temp = 0;

我们将其设置为最小值,以便在第一次比较时,可以保证max将被设置为矩阵中的一个元素。稍后,它只是与其他矩阵元素进行比较。

var maximumWealth = function (accounts) {
let a = accounts.map((e) => e.reduce((a, b) => a + b))
return Math.max(...a)
};

最新更新