问题是 - 找到所有子阵列中所有最大值的总和。例如,我有数组{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
您是否知道以线性时间复杂度解决此问题的方法?
答案 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