小编Eni*_*gma的帖子

计算给定数组的子序列的数量,使它们的总和小于或等于给定的数量?

我有一个大小n为整数值的数组和一个给定的 number S

1<=n<=30
Run Code Online (Sandbox Code Playgroud)

我想找到子序列的总数,使得每个子序列的元素总和小于S例如:n=3S=5和数组的元素是作为{1,2,3}然后其总的子序列是7原样

{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}
Run Code Online (Sandbox Code Playgroud)

但是,所需的子序列是:

{1},{2},{3},{1,2},{1,3},{2,3}
Run Code Online (Sandbox Code Playgroud)

that is{1,2,3}不被采用,因为它的元素总和(1+2+3)=6大于Sthat is 6>S。之所以采用其他,是因为,对于其他子序列,元素总和小于S。因此,可能的子序列总数为6。所以我的答案是计数,即6

我试过递归方法,但它的时间复杂度是2^n. 请帮助我们在多项式时间内完成。

c++ arrays algorithm subsequence

5
推荐指数
1
解决办法
5963
查看次数

在给定数组中找到长度为k的所有连续子阵列的总和

我想找出长度的连续子阵列的所有总和K 的长度给定的数组n因为k < n.例如,让给定的数组为arr[6]={1,2,3,4,5,6}k=3,然后回答(6,9,12,15).它可以获得如下:

(1+2+3)=6,
(2+3+4)=9,
(3+4+5)=12,
(4+5+6)=15.
Run Code Online (Sandbox Code Playgroud)

我试过这个使用长度的滑动窗口k,但它的时间复杂度是O(n).任何解决方案都需要更少的时间,如O(log n).

c c++ algorithm sliding sub-array

1
推荐指数
1
解决办法
651
查看次数

标签 统计

algorithm ×2

c++ ×2

arrays ×1

c ×1

sliding ×1

sub-array ×1

subsequence ×1