【发布时间】:2016-04-20 04:14:26
【问题描述】:
我正在寻找一个给出如下列表的算法:
[1, 1, 2, 1, 1, 5, 1, 1, 1, 1, 2, 1]
可以找到并返回给定值的所有子序列。例如,如果给定值 1,该函数将返回 [[1, 1], [1, 1], [1, 1, 1, 1], [1]]。
我相信这类似于对数组的所有子序列求和或查找给定字符串的所有子序列等问题,但算法从来都不是我的强项。答案可以是伪代码或与语言无关。如果您不介意,您能解释一下解决方案的复杂性吗?
如果有帮助,我可以解释我需要这个做什么。如果需要,请发表评论。
【问题讨论】:
-
你能解释一下你的所有子列表应该有
value 1吗? ......这里的财产是什么? (我最好的猜测:你想要其中所有值最多为 1 的所有子序列) -
另外:上次我检查
[1,1,1,1,1,1,1,1,1]也将是一个子序列see the definition -
是的,这将是一个子序列,但我正在查看的所有解决方案都是关于总结一个子序列或找到最长的子序列,而不是返回实际序列本身。不,1 只是我选择的任意示例。
-
所以你只想在有元素
neq 1时拆分列表? -
不,我正在做一些比这更复杂的事情,与 iOS 中的 CoreVideo 和 AVFoundation 有关,我只是想知道如何在高层次上完成这项工作。
标签: arrays algorithm subsequence