avatar
p*3
1
给一个数组和一个目标数s
找出所有和为s的子数组
例如 [3,1,2,-1,-2], s=3
[[3],[1,2],[3,1,2,-1,-2]]
这题能做到优于O(n^2)么?
换句话说能不用检查所有的子数组么?
avatar
r*h
2
元素非负的话好像可以O(n)

【在 p****3 的大作中提到】
: 给一个数组和一个目标数s
: 找出所有和为s的子数组
: 例如 [3,1,2,-1,-2], s=3
: [[3],[1,2],[3,1,2,-1,-2]]
: 这题能做到优于O(n^2)么?
: 换句话说能不用检查所有的子数组么?

avatar
r*n
3
定义一个int sum[N]数组,sum[i] = arr[0]+arr[1]+...+arr[i]
然后这题就变成了找两个indices i, j, i<=j, such that sum[j] - sum[i] = s,这
个是2-sum problem的变体,可以有O(N)解。
avatar
r*e
4

我想成下标不连续的了

【在 r*********n 的大作中提到】
: 定义一个int sum[N]数组,sum[i] = arr[0]+arr[1]+...+arr[i]
: 然后这题就变成了找两个indices i, j, i<=j, such that sum[j] - sum[i] = s,这
: 个是2-sum problem的变体,可以有O(N)解。

avatar
r*h
5
我一开始也想的是不连续
不连续的话就是NP问题了吧

【在 r*******e 的大作中提到】
: 赞
: 我想成下标不连续的了

avatar
c*a
6
下标不连续的话就先排序,再递归
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。