查找所有子数组

时间:2017-09-26 20:16:56

标签: arrays subset

问题是 - 找到所有子阵列中所有最大值的总和。例如,我有数组{2,8,4,3,5},解决方案将是92.我所有的子数组都是:

{2},{8},{4},{3},{5},

{2,8},{8,4},{4,3},{3,5},

{2,8,4},{8,4,3},{4,3,5},

{2,8,4,3},{8,4,3,5},

{2,8,4,3,5}

所有子阵列的所有最大值都是:

2 - 8 - 4 - 3 - 5 -

8 - 8 - 4 - 5 -

8 - 8 - 5 -

8 - 8 -

8

您是否知道以线性时间复杂度解决此问题的方法?

1 个答案:

答案 0 :(得分:0)

应该非常简单。请参阅以下算法

sum = 0
max = 0
for every array 'arr' in the array of arrays
do
   for every element 'arri' in the array 'arr'
   do
      if arri >= max, max = arri
   end for
   max = 0
   sum = sum + max
end for