问题描述
最快的方法是找到数组中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 (将#修改为@)