将16堆奶酪放在4x4正方形上。它们被标记为到。最小的桩是,最大的桩是。
饥饿的老鼠是如此饥饿,以至于它总是直接跳到最大的一堆(即)并立即吃掉它。
之后,它进入最大的相邻堆,并很快也吃掉那堆。(是的…… 真的很饿。)依此类推,直到不再有相邻的堆了。
一堆最多可以有8个邻居(水平,垂直和对角线)。没有环绕。
例
我们从以下几堆奶酪开始:
饥饿的老鼠先吃掉,然后再吃掉最大的邻居堆,即。
其下一个动作是,,,,,,,,和在此确切顺序。
饥饿的老鼠周围不再有奶酪,所以它停在那里。
挑战
给定初始的奶酪配置,一旦饥饿的老鼠停止吃掉它们,您的代码必须打印或返回剩余的总和。
对于以上示例,预期答案为。
规则
- 由于输入矩阵的大小是固定的,因此可以将其作为2D数组或一维数组。
- 从到每个值都保证只出现一次。
- 这是代码高尔夫球。
测试用例
[ [ 4, 3, 2, 1], [ 5, 6, 7, 8], [12, 11, 10, 9], [13, 14, 15, 16] ] --> 0
[ [ 8, 1, 9, 14], [11, 6, 5, 16], [13, 15, 2, 7], [10, 3, 12, 4] ] --> 0
[ [ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16] ] --> 1
[ [10, 15, 14, 11], [ 9, 3, 1, 7], [13, 5, 12, 6], [ 2, 8, 4, 16] ] --> 3
[ [ 3, 7, 10, 5], [ 6, 8, 12, 13], [15, 9, 11, 4], [14, 1, 16, 2] ] --> 12
[ [ 8, 9, 3, 6], [13, 11, 7, 15], [12, 10, 16, 2], [ 4, 14, 1, 5] ] --> 34
[ [ 8, 11, 12, 9], [14, 5, 10, 16], [ 7, 3, 1, 6], [13, 4, 2, 15] ] --> 51
[ [13, 14, 1, 2], [16, 15, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12] ] --> 78
[ [ 9, 10, 11, 12], [ 1, 2, 4, 13], [ 7, 8, 5, 14], [ 3, 16, 6, 15] ] --> 102
[ [ 9, 10, 11, 12], [ 1, 2, 7, 13], [ 6, 16, 4, 14], [ 3, 8, 5, 15] ] --> 103
[[9, 10, 11, 12], [1, 2, 7, 13], [6, 16, 4, 14], [3, 8, 5, 15]]