你能帮我解决以下问题吗..。
有一个N*M表,每个单元都有一个开关,它有两个状态-- ON/OFF。当我们改变一个开关的状态时,不仅是它本身,还包括上下、左和右。问题是编写一个程序来找出并打印出关闭所有开关的最小步骤。如果没有,打印-1。
例如,下面是一个3*4表。(※为OFF,O为ON。)
pic.1
● ● ● ●
● O ● ●
● ● ● ●现在,我们将(1,1)单元格从ON更改为OFF,然后将表更改为下面。
pic.2
● O ● ●
O ● O ●
● O ● ●当我们将(0,2)单元格从OFF更改为ON时,它将变成:
pic.3
● ● O O
O ● ● ●
● O ● ●等等..。
顺便说一下,这个例子(pic.1)的结果是4,这意味着至少需要4个步骤才能将所有的开关都关闭。
我使用javascript实现了这个问题,并将其提交给github。
发布于 2018-09-03 16:52:05
提供第一次插入解决方案。
张贴到示例代码的链接是可以的,但是您应该引用它,然后提供第一个stab解决方案。解释你为什么有麻烦,或者你有什么问题。
算法与董事会状态
你的目标是找到一条道路,在这条道路上,移动细胞会导致一个获胜的状态。我看到你已经编写了一个可播放的版本,但没有自动搜索逻辑。
看看搜索的一些小窍门。除了尝试例程之外,您还需要一种比较董事会状态的方法。你知道,如果你已经达到了获胜的条件,但是搜索算法也需要一个启发式算法。你可以使用“更少的引脚更好”的启发来开始。
https://stackoverflow.com/questions/52152865
复制相似问题