Dada uma matriz de números inteiros, encontre uma sub-matriz cuja soma é máxima. Se houver apenas uma linha ou apenas uma coluna, isso equivale a encontrar um subconjunto máximo .
A versão 1D pode ser resolvida em tempo linear por programação dinâmica. A versão 2D pode ser resolvida em fazendo um loop sobre todos os pares de colunas e usando o algoritmo 1D na matriz cujo comprimento é o número de linhas na matriz em que cada posição mantém a soma dos elementos na linha entre as duas colunas.
Se a matriz for dada por:
Então, para o par de colunas , a soma máxima da sub-matriz pode ser encontrada usando o algoritmo 1D na matriz (de cima para baixo):