c++ - 打印最大和的路径和数组中的和
问题描述
我在做任务,我必须在矩阵中找到最大总和路径并打印路径和总和。我通过找到总和来完成那部分,但我无法打印路径。你能帮助我吗?这是我所做的:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
#define N 100
int n, m;
int a[N][N];
vector<vector<int> > dp(N, vector<int>(N)),
visited(N, vector<int>(N));
int currentSum = 0;
int totalSum = 0;
void inputMatrix()
{
n = 3;
m = 3;
a[0][0] = 500;
a[0][1] = 100;
a[0][2] = 230;
a[1][0] = 1000;
a[1][1] = 100;
a[1][2] = 100;
a[2][0] = 200;
a[2][1] = 1000;
a[2][2] = 200;
}
int maximumSumPath(int i, int j)
{
if (i == n - 1 && j == m - 1)
return a[i][j];
if (visited[i][j])
return dp[i][j];
// Marking (i, j) is visited
visited[i][j] = 1;
int& totalSum = dp[i][j];
if (i < n - 1 && j < m - 1)
{
int current_sum = max(maximumSumPath(i, j + 1), maximumSumPath(i + 1, j));
totalSum = a[i][j] + current_sum;
}
else if (i == n - 1)
{
totalSum = a[i][j] + maximumSumPath(i, j + 1);
}
else
{
totalSum = a[i][j] + maximumSumPath(i + 1, j);
}
return totalSum;
}
int main()
{
inputMatrix();
int maximumSum = maximumSumPath(0, 0);
cout << maximumSum << endl;
system("pause");
return 0;
}
打印具有最大总和的路径的最佳方法是什么?
预先感谢!
解决方案
推荐阅读
- html - 如何通过 HTML 更改我的 chrome 浏览器的选项卡名称
- command-line - Ada GNATprove Command_Line.Argument 前置条件失败
- java - 缓存控制:无缓存
- c# - 使用授权码发出 OAuth2 请求以获取访问令牌 | 不和谐 C# ASP.NET MVC
- java - 为什么我在运行代码时(在 Eclipse 中)没有得到任何输出?
- elasticsearch - Kibana 服务器尚未准备就绪,甚至尚未启动
- python - Python中的位置参数
- java - 在 .\stanford-corenlp-4.0.0 找不到 stanford-parser\.jar jar 文件
- javascript - 不断从网站获取日志输出
- python - 在python(或pandas)中只用一个td multiple a解析HTML