我的最终状态是
0 1 2
3 4 5
6 7 8
我的图看起来像这样
graph = {0 :[1, 3],
1 :[0, 4, 2],
2 :[1, 5],
3 :[0, 4, 6],
4 :[1, 3, 5, 7],
5 :[2, 4, 8],
6 :[3, 7],
7 :[4, 6, 8],
8 :[5 ,7]
}
1-我想知道是否应该尝试其他方法,例如list,if语句而不是graph(上面)。
2-图形有问题吗?
给出的问题-
示例[1,5,3,2,0,4,7,8,6] <-更像这样
1 5 3
2 0 4
7 8 6
我应该找到具有给定状态的最终状态
谢谢
答案 0 :(得分:0)
因此,有4种极端情况:
(和组合)
我们可以像这样轻松地处理它们:
data = [1, 5, 3,
2, 0, 4,
7, 8, 6]
width = 3
height = 3
graph = {number: list() for number in data}
for idx, number in enumerate(data):
current_height = int(idx / width)
current_width = idx % width
if current_width != width - 1: # if next element in same row
graph[number].append(data[idx + 1])
if current_width != 0: # if prev element in same row
graph[number].append(data[idx - 1])
if current_height != 0: # if there is top element
graph[number].append(data[idx - 3])
if current_height != height - 1: # if there is bottom element
graph[number].append(data[idx + 3])
import pprint
pprint.pprint(graph)
此代码将构造图形,但这完全是为了解决这个难题吗?。