8 皇后呢

8 皇后呢

换成经典的 8×8 棋盘。运行同样的程序: def ok(col, c): r = len(col) for i in range(r): if col[i] == c

阅读更多 →
4 皇后有几个解

4 皇后有几个解

4×4 的棋盘上放 4 个互不攻击的皇后。运行下面这段程序: def ok(col, c): r = len(col) for i in range(r): if co

阅读更多 →
怎么判断两个皇后在同一斜线

怎么判断两个皇后在同一斜线

两个皇后在同一条斜线上,判据是【0】。

阅读更多 →
N 皇后有哪几类约束

N 皇后有哪几类约束

N 皇后要求任意两个皇后【0】。

阅读更多 →
⚠️ 三样一起数

⚠️ 三样一起数

一次输出三个数:[1,2,3] 的子集个数、[1,2,2] 去重后的子集个数、从 [1,2,3,4] 里选出和为 5 的选法数。

阅读更多 →
写一个

写一个"选出和为目标"的搜索

补全 pick_sum:从 [1,2,3,4] 里选若干个(每个最多选一次),和正好等于 5。 顺手剪一刀:和已经超过目标就别往下走了。输出有几种选法。

阅读更多 →
写一个去重的子集

写一个去重的子集

补全 subs_uniq:先排序,再在同一层跳过和前一个相同的元素。对 [1, 2, 2] 输出子集个数。

阅读更多 →
写一个子集

写一个子集

补全 subs:生成 [1,2,3] 的全部子集。注意子集要在每一层都记一次,不是只在最底下记。 输出子集的个数。

阅读更多 →
⚠️ 有重复元素,去重前后差多少

⚠️ 有重复元素,去重前后差多少

[1, 2, 2] 里有两个一样的 2。一边不去重、一边去重,各生成一遍全部子集。运行下面这段程序: def subs(a): res = [] path = [] def d

阅读更多 →
组合类问题每层的起点

组合类问题每层的起点

生成组合时,下一层递归的起点应该是【0】。

阅读更多 →