如何解决递归计算数组中任意k个元素的最大和无任何约束
最快的方法是找到数组中n个元素的最大值。 (它们不必是连续的)
例如a = {1、3、2、5、0、10}
n = 2时的最大和为15
例如,如果
- n为2,那么我们将使用两个循环
- n为3,我们将使用3个循环,但是 那应该是O(n ^ 3)。
然后,对于n = 4、5 ...,很难反复找到解决方案
我认为递归可以为此提供解决方案,所以我想出了
long rec(ArrayList<Int> a,int i,int n) {
if (i > 0 && i< n) {
return Math.max(a.get(i),rec(a,i-1,m)+ a.get(i));
} else {
return a.get(0);
}
}
由
呼叫 for(int i = a.size() -1; i >=n; i--) {
long max = rec(a,i,n);
}
但是我似乎看不到解决方案。关于可能的算法或方法有什么建议吗? 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。