【发布时间】:2017-04-03 22:37:21
【问题描述】:
给定 n 和 k,k 在多少种方式中,我们可以从集合 {1, 2,…, n} 中精确选择“k”个不同的数字,使得对于每个选择的数字“a”至少有一个 'a-1' , 'a+1'也被选中? 一个时间复杂度O(n*k)的动态规划解是已知的。我们能做得更好吗?
【问题讨论】:
-
n 和 K 作为输入。我们必须准确地选择 k 个不同的数字
-
如果你可以证明时间复杂度也是
Ω(n*k),那么时间复杂度就是Θ(n*k),这意味着你不能做得更好。跨度> -
你能证明 O(nk) 算法(可能有一些改进)吗?
标签: algorithm math dynamic-programming combinatorics