【发布时间】:2012-01-22 15:59:48
【问题描述】:
我被要求回答这个问题(从技术上讲是家庭作业)让我大汗淋漓。 我考虑过使用哈希表,但我对如何完成这项工作的具体细节有点坚持
问题来了:
给定k组整数A1,A2,。 .,Ak个总大小为O(n),你要判断是否存在 a1 ϵ A1, a2 ϵ A2,..,ak ϵ Ak,这样 a1+a2 +..+ak-1 =ak。您的算法应该在 Tk(n) 中运行 时间,其中 Tk(n) = O(nk/2 × log n) 偶数 k 和 O(n(k em>+1)/2) 表示 k 的奇数值。
谁能给我一个大致的方向,以便我可以更接近解决这个问题?
【问题讨论】:
-
恭喜你获得作业。你对这个问题有任何的答案吗(不考虑复杂性)?如果是这样,您如何分析它的复杂性?你认为你的方法是完全错误的,还是你认为某些特定的部分是错误的?
-
我能想到的唯一能 100% 工作的是 n^n 的最天真的实现(即检查所有选项)。显然这不是正确的方法:(
-
我想知道这是否更适合 Math Overflow?
标签: algorithm hashtable backtracking subset-sum