Problema da mochila é NP-complete quando os números são dados como binários números. Nesse caso, a programação dinâmica levará exponencialmente muitos passos (no tamanho da entrada, isto é, o número de bits na entrada) para finalizar † .
Por outro lado, se os números na entrada forem dados em unário, a programação dinâmica funcionará em tempo polinomial (no tamanho da entrada).
Esse tipo de problema é chamado fracamente NP-complete .
†2n−−√nnnlgnO(n−−√)=O(2lgn/2)
Esse tipo de algoritmo, ou seja, polinômio no maior número que faz parte da entrada, mas exponencial no comprimento da entrada é chamado pseudo-polinômio .