有趣的Google面试题 - Harry Potter走矩阵

MITBBS上看了一道有趣的G家面试题,题目如下:

有一个2维矩阵,假设你是Harry Potter,在矩阵的左上角,你现在要走到右下角。矩阵中每个点都有一个权值,有正数也有负数,遇到正数表示你的生命力能增加那么多,遇到负数表示生命力减少那么多,在任何时刻如果你的生命力小于0,那么你就挂了。在一开始你有一定的初始生命力,现在问这个初始的生命力最少是多少,才能保证你能够找到一条路。走到右下角。每一步只能向右或者向下。

其实这个题目看起来很像LeetCode里的Minimum Path Sum,也是从左上角走到右下角,只不过这里不是求总权值最小的路径而已。那么这题是不是用同样的方法就可以解决了呢?现在分析下题目的相似处和不同处。

相似处:都是求最优解问题,而且都具有递归性质。一般这种题目要么用贪心,要么用DP。稍微分析下,这里用贪心肯定不行的,如果一开始碰到两个权值都为正的方向,直接贪心地选择走权值更大的那个,那么之后如果遇到一个无法预见的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值