挑战经我的大学代码挑战竞赛许可
我们对手机的依赖性使我们每天晚上都对手机充电直至达到电池的最大电量,因此,我们不会在第二天的中间出现断电的风险。甚至有些人在白天看到免费的插座时,会对可能发生的事情收取费用。
我是他们其中的一员。
多年以来,我不断完善自己的技术,以使每晚不给电池充电到最大程度。通过众所周知的重复程序,我可以清楚地知道一天中的哪些时间可以进行部分充电(以及电量将增加多少个单位)以及每次充电之间会降低电池电量的原因。利用这些数据,每天晚上我都要计算出第二天必须离开房屋的最低电池电量,以使其永远不会低于我自己设定的两个门槛。
当我离开已建立的例行程序时,我还没有掌握的是相同的计算方法,但我有几种选择可以做事。例如,这发生在我前往另一个可以以不同方式到达的城市的路上。
在解决该问题的第一种方法中,我假设我想绕着“棋盘”从左上角到右下角移动。在每个“小区”中,我可以为移动电话充电一定的金额,或者我不能对其充电,并且其负载水平会下降。
挑战
给定一个整数的FxC矩阵,输出我需要从左上角到右下角的最小电池电量,而负载水平不得低于2个单位。
在矩阵中,正数表示在必须继续沿自己的路径行驶之前我可以为手机充电多少,而负数表示没有插座,并且移动电话的电池电量降低了该数量。确保源单元格和目标单元格中的数量(左上角和右下角)始终为0,其余值(绝对值)不超过100。
给定的示例:
我需要更少电池的路径是:
我需要的最小电池电量是4
笔记
- 起点总是在左上角
- 终点总是在右下角
- 您无法进入已通过的单元。示例:位置(0,1)后,您将无法到达起始点(0,0)
- 您的电池电量不能(出于任何原因)低于2
- 您可以假设总会有起点和终点
- 如果需要,可以将一维数组作为多维数组
[1,2,3] == [[1,2,3]]
- 可能有多个正确的(最低所需充电)路径
- 您的目标是仅输出所需的最低初始电池电量,而不是路线
- 您只能水平和垂直走(不能对角线走)
测试用例
[0, 0] => 2
[0, 1, 0] => 2
[0, -1, 0] => 3
[0, 15, -20, 5, 0] => 7
[[0, -3],[-5, 0]] => 5
[[0, -5, -9, 5], [-3, 5, 2, -2], [2, -4, -4, 0]] => 5
[[0, -1, 1, -1], [-1, -1, -1, -1], [-1, 1, -1, -1], [1, 1, -1, 0]] => 4
我忘记了挑战的一天。沙盒发布
—
路易斯·费利佩·德·耶稣·穆诺兹
@BlackOwlKai我认为这两个挑战都是不同的
—
路易斯·
最佳路径是否需要向左或向上移动?例如
—
Kamil Drakari '19
[[0,1,-1],[-9,-9,1],[-9,1,-1],[-9,-1,-9],[-9,1,0]]
@dana不,只有2个
—
Luis felipe De jesus Munoz
0s
放在左上角,另一个放在右下角