我正在寻找一种方法来搜索给定序列中的子序列,该子序列总结到给定数字(sum
,此处4
)并具有词典编排优先级.
以下面的例子为例:
1,2,2,4,1,1
Run Code Online (Sandbox Code Playgroud)
不同的子序列可以总结为4
.例如1,2,1
,2,2
2,1,1
.如果存在多个这样的序列,则应该返回相应索引数组的第一个字典:如果有可能找到第一个元素的序列,则必须返回该序列,如果不是,则返回第二个元素.所以一个(迭代(接下一个)和递归(在选择第一个之后,下一个但第一个也应该最接近序列的头部).
所以对于这个例子,我们选择1,2,1
.现在2,4,1
离开了.如果我们重复这个问题,我们就无法匹配2
:2,4
大于4
且2,1
小于4
.因此我们选择4
.最后我们必须选择2
和1
.
这个概念的实际应用是过山车的队列.你需要4个人才能搭车,但是有些人和他们的朋友在一起,并希望所有人一起乘车.
在这个例子1
中,前面是一个人,2
是2
他背后的一群朋友.现在我们需要一共4
有人来完成这次旅行,我们已经拥有了3
,所以我们切断了线路(2
和4
)并占用了第一个人,这总共给了我们4个人.