这是一个面试问题:
对于一个矩阵,我们定义这样一个操作:将其中一个元素加1,则它周围的元素(上下左右)也被加1。给定一个正整数矩阵,请找到一种算法来判断是否可以通过该操作从零矩阵构建出此矩阵。
有没有有效的算法解决这个问题?
当前我能想到的是使用回溯算法尝试所有可能的组合,但这显然不够高效。该问题有点像灯泡游戏,但这里并不是0/1,这使得问题更加复杂。
谢谢。
编辑:
例如:
对于一个矩阵,我们定义这样一个操作:将其中一个元素加1,则它周围的元素(上下左右)也被加1。给定一个正整数矩阵,请找到一种算法来判断是否可以通过该操作从零矩阵构建出此矩阵。
有没有有效的算法解决这个问题?
当前我能想到的是使用回溯算法尝试所有可能的组合,但这显然不够高效。该问题有点像灯泡游戏,但这里并不是0/1,这使得问题更加复杂。
谢谢。
编辑:
例如:
3 3 can be constructed from 0 0 -> 1 1 -> 2 2 -> 3 3
1 2 0 0 1 0 1 1 1 2