递归计算数组中任意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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...