gpt4 book ai didi

c++ - 如何遍历二维数组?

转载 作者:行者123 更新时间:2023-11-28 01:29:58 25 4
gpt4 key购买 nike

我正在研究 this problem不久前提出了这个解决方案:

// Complete the hourglassSum function below.
int hourglassSum(vector<vector<int>> arr) {
int max = INT_MIN;
vector<int> sums;
for (int i = 1; i < 5; i++)
{
for (int j = 1; j < 5; j++)
{
sums.push_back(arr[i][j] +
arr[i - 1][j-1] +
arr[i-1][j] +
arr[i-1][j+1] +
arr[i + 1][j - 1] +
arr[i+1][j] +
arr[i + 1][j + 1]);

}
}
for (int g = 0; g < sums.size(); g++) {
cout << sums[g] << endl;
}
for (int k = 0; k < sums.size(); k++)
{
if (sums[k] > max)
{
max = sums[k];
}
}
return max;
}

我最初有一个不同的解决方案,但改变了 i 和 j 的位置以使其工作。这让我想到了以下问题:在遍历二维数组时,可以假设 i 水平移动而 j 垂直移动吗?

最佳答案

“水平”和“垂直”可以随心所欲,只要您的心智模型保持一致即可。您可以考虑 (x, y) 点,其中 x 是水平方向,y 是垂直方向。或者您可以将数组视为一个矩阵,其中 i 是行号,j 是列号。这两种观点都会奏效。同样,一致性很重要。

关于c++ - 如何遍历二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com