博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
No.172 - LeetCode1301
阅读量:4057 次
发布时间:2019-05-25

本文共 850 字,大约阅读时间需要 2 分钟。

class Solution {
public: vector
pathsWithMaxScore(vector
& board) {
int N = board.size(); int M = board[0].length(); const long long mod = 1000000007; vector
> dp(N+1,vector
(M+1,0)); vector
> path(N+1,vector
(M+1,0)); path[N][M] = 1; for(int i=N-1;i>=0;i--){ for(int j=M-1;j>=0;j--){ if(board[i][j] == 'X') continue; long long score = board[i][j] - '0'; if(board[i][j] == 'S' || board[i][j] == 'E') score = 0; long long mx = max(dp[i+1][j+1],max(dp[i+1][j],dp[i][j+1])); dp[i][j] = mx + score; if(mx == dp[i+1][j+1]) path[i][j] += path[i+1][j+1]; if(mx == dp[i+1][j]) path[i][j] += path[i+1][j]; if(mx == dp[i][j+1]) path[i][j] += path[i][j+1]; path[i][j] %= mod; } } if(path[0][0] == 0) return { 0,0}; return { dp[0][0],path[0][0]}; }};

转载地址:http://ctgci.baihongyu.com/

你可能感兴趣的文章
【数据结构周周练】009 二叉树的先序、中序、后序遍历(递归算法实现)
查看>>
【数据结构必备基本知识】递归与迭代的联系、区别与优缺点对比详解
查看>>
【数据结构周周练】010 递归算法实现二叉树的创建与遍历
查看>>
【数据结构周周练】011 非递归算法实现二叉树的遍历
查看>>
【数据结构周周练】012 利用队列和非递归算法实现二叉树的层次遍历
查看>>
【数据结构周周练】013 利用栈和非递归算法求二叉树的高
查看>>
【数据结构周周练】014 利用栈和非递归算法求链式存储的二叉树是否为完全二叉树
查看>>
【数据结构周周练】015 利用递归算法创建链式存储的二叉树并转换左右孩子结点
查看>>
【数据结构周周练】016 利用递归算法及孩子兄弟表示法创建树、遍历树并求树的深度
查看>>
【数据结构周周练】017 利用递归算法及孩子兄弟表示法创建森林、遍历森林并求森林的叶子结点个数
查看>>
【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
查看>>
【数据结构周周练】018 利用递归算法及中序遍历将二叉树线索化并遍历
查看>>
【数据结构周周练】019 利用递归算法创建二叉排序树并遍历
查看>>
【数据结构周周练】020 二叉排序树的排序与迭代查找
查看>>
【数据结构周周练】035 利用递归判断一棵二叉树是否为二叉排序树
查看>>
【数据结构周周练】021 求某一个数据在二叉排序树中的层数
查看>>
【数据结构周周练】022 从大到小输出二叉排序树中小于某个值的所有结点编号及数据
查看>>
【数据结构必备基础知识】之图的基本概念详解
查看>>
【数据结构必备基本知识】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)详解
查看>>
【数据结构周周练】023 将图的邻接表表示转化为邻接矩阵表示的算法
查看>>