Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 小于限制的最大总和_Arrays_Algorithm - Fatal编程技术网

Arrays 小于限制的最大总和

Arrays 小于限制的最大总和,arrays,algorithm,Arrays,Algorithm,我一直在试图解决这个问题,但没能想出一个算法 我的尝试- 将输入分成两个数组,一个是奇数索引的值,另一个是偶数索引的值。之后,对数组进行排序并将数字相加,直到总和小于限制。我很快就通过一些测试用例发现了这个缺陷 我将输入存储在一个数组中,每次我试图添加剩余的最大数,条件是它不与已经添加的任何数相邻,但这个算法也被证明是错误的 现在,我能想到的唯一解决方案是尝试所有可能的组合:( 请建议解决此问题的正确算法。这是一个众所周知的NP难问题,因此,如果您的解决方案是指数型的,请不要担心。这是一个背包问

我一直在试图解决这个问题,但没能想出一个算法

我的尝试-

  • 将输入分成两个数组,一个是奇数索引的值,另一个是偶数索引的值。之后,对数组进行排序并将数字相加,直到总和小于限制。我很快就通过一些测试用例发现了这个缺陷

  • 我将输入存储在一个数组中,每次我试图添加剩余的最大数,条件是它不与已经添加的任何数相邻,但这个算法也被证明是错误的

  • 现在,我能想到的唯一解决方案是尝试所有可能的组合:(


    请建议解决此问题的正确算法。

    这是一个众所周知的NP难问题,因此,如果您的解决方案是指数型的,请不要担心。

    这是一个背包问题,有一个附加约束(您不能拾取两个相邻的灌木丛),附加的约束并没有使它变得更容易或更难。因为它和背包一样难,即NP完全,除了蛮力搜索(可以优化,但仍然是指数/超多项式)之外,基本上没有什么其他的事情要做。

    thnx…它工作了…背包实现中稍微修改一下就得到了AC:)