中级农民
- 积分
- 112
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-7-19
- 最后登录
- 1970-1-1
|
我写了下老鼠的题,返回所有冲突的情况。老鼠用1-n表示的,冲突里每个list元素代表每个结点上的老鼠可能性。- def mouse(n):
- res = []
- mouse = [i for i in range(1, n + 1)]
- line = [[] for i in range(n)]
- helper(line, mouse, res, 0)
- return res
- def helper(line, mouse, res, index):
- if index == len(mouse):
- for l in line:
- if len(l) > 1: # means colli
- copy = []
- for l in line:
- copy.append(list(l))
- res.append(copy)
- return
- line[(index - 1) % len(mouse)].append(mouse[index])
- helper(line, mouse, res, index + 1)
- line[(index - 1) % len(mouse)].pop()
- line[(index + 1) % len(mouse)].append(mouse[index])
- helper(line, mouse, res, index + 1)
- line[(index + 1) % len(mouse)].pop()
复制代码 |
|