![]() |
1
9
只要做 iterative deepening search .
然后打电话,说,
|
![]() |
2
3
解释“升序”需求有两种方法。更宽松的解释是“在每个列表中,整数应该以升序出现”。更严格的解释是“名单需要按顺序排列”。我想这就是你想要的,但是我想出了一个简单的迭代方法来满足更宽松的需求。 对于n个项目,通过所有n位数字进行计数。如果一个项目对应的位在那里,那么它就在结果列表中。
1,2,3,4,5的结果是: [] 〔1〕; 〔2〕; [ 1, 2 ], 〔3〕; 〔1, 3〕; 〔2, 3〕; 〔1, 2, 3〕; 〔4〕; 〔1, 4〕; 〔2, 4〕; 〔1, 2, 4〕; 〔3, 4〕; 〔1, 3, 4〕; 〔2, 3, 4〕; [1,2,3,4], 〔5〕; 〔1, 5〕; 〔2, 5〕; 〔1, 2, 5〕; 〔3, 5〕; 〔1, 3, 5〕; 〔2, 3, 5〕; [1,2,3,5], 〔4, 5〕; 〔1, 4, 5〕; 〔2, 4, 5〕; [1,2,4,5], 〔3, 4, 5〕; [1,3,4,5], [2,3,4,5], [1,2,3,4,5] 是的,我知道,我因为不使用递归而失分。 |
![]() |
3
1
我在考虑这个问题,并意识到它可以有效地使用动态编程方法。下面是我给出的迭代解,它使用
我相信这比递归迭代深化搜索效率高得多,因为它不会在生成过程中重新访问现有状态;它使用队列记住以前的状态,并使用这些状态生成连续的状态。 性能比较
代码
|
![]() |
4
0
生成组合比排序花费的时间要长得多,而且对给定的100000个数字进行排序也不需要那么长的时间
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 7 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 7 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 11 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 11 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 11 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |