编程题:动态规划---从左上角到右下角的价值最大的路径
来源:互联网 发布:kiki软件收费吗 编辑:程序博客网 时间:2024/05/18 02:53
腾讯2016年4月2号暑假实习移动开发岗的笔试题,编程题第一题大概题目是:
一个m*n的矩阵,只能向右走或是向下走,矩阵每一个元素代表一个财富值,要求打印出从左上角到右下角走的财富最大总值。
如输入m=4 ,n=5,
输入矩阵value=
{ 0 0 7 0 0,
0 0 0 5 0,
2 0 4 0 0,
0 0 0 3 0},
打印出最大财富总值是15。
这是动态规划的题目,跟“[leetcode 64] Minimum Path Sum------从左上角到右下角的最小路径值”的思路是一样的,
C++的参考代码如下:
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int value[1024][1024];int main(){int m, n;scanf_s("%d%d", &m, &n);//输入矩阵for (int i = 0; i < m; ++i){for (int j = 0; j < n; ++j){scanf_s("%d", &value[i][j]);}}//计算for (int i = 1; i < m; ++i){value[i][0] += value[i - 1][0];}for (int j = 1; j < n; ++j){value[0][j] += value[0][j - 1];}for (int i = 1; i < m; ++i){for (int j = 1; j < n; ++j){value[i][j] += max(value[i - 1][j], value[i][j - 1]);}}////打印调试//for (int i = 0; i < m; ++i)//{//for (int j = 0; j < n; ++j)//{//cout << value[i][j] << " ";//}//cout << endl;//}//cout << endl;cout << value[m - 1][n - 1] << endl;return 0;}
程序运行结果:
1 0
- 编程题:动态规划---从左上角到右下角的价值最大的路径
- 求矩阵左上角到右下角路径的最大价值
- 动态规划求解从矩阵左上角到右下角的最大受益问题
- 【DP】在矩阵中,选择一条从左上角到右下角、经过数字之和最大的路径
- 输出从矩阵左上角到右下角的所有路径
- 矩阵中从左上角到右下角的路径条数
- 动态规划解决矩阵左上角到右下角距离最大
- 动态规划解决矩阵左上角到右下角和最大
- 矩阵从左上角到右下角的最优路径使得经过路径上的权值和最大(最小)
- 从矩阵左上角到右下角的最大值
- 求矩阵左上角到右下角所经过点的和的最大距离和路径
- [leetcode 64] Minimum Path Sum------从左上角到右下角的最小路径值
- Test1_N*N矩阵从左上角到右下角路径和的最大值
- 从左上角到右下角的带有阈值的最大值
- 二维数组--从左上角到右下角的最大值 九度
- DP 动态规划 Problem H 1008 左上角到右下角
- 计算一个矩阵从左上角到右下角和最大
- 动态规划解决矩阵左上角到右下角距离最大(转 http://blog.csdn.net/ycc892009/article/details/6523167)
- 拓园情
- 《PHP核心技术与最佳实践》读书笔记(面向接口与反射篇)
- Deep learning 学习(一)
- 链表
- eclipse svn拷贝团队 队员文件 到项目导致svn失去版本控制等错误原因
- 编程题:动态规划---从左上角到右下角的价值最大的路径
- 函数模板与类模板
- 新建controllers/models/views及数据库连接优化
- 链表内容排序
- 支持向量机SVM(一)
- 绘图 画笔特效处理2
- 大数据工程师:大数据的java基础 第八周
- 文件操作File
- 链表操作