2016-07-21 5 views
0

Я пытаюсь сгенерировать ключ и значение комбинации элементов, сохраненную в карте>комбинации Предельной до определенного размера

например: {3 = [16], 2 = [11, 12], 1 = [5 , 7], 0 = [1, 3]}

Необходимо получить комбинации, как

   [0,1]-> [[1,5],[1,7],[3,5],[3,7]] 
       [0,2]-> [[1,11],[1,12],[3,11],[3,12]] and so on.. 

в настоящее время я могу получить эти комбинации.

Но я столкнулся вопрос 1. Мне нужно получить только комбинацию для map.size -1 т.е. в настоящее время мои результаты

FINAL RESULT*** [3]===[ 16] 
FINAL RESULT*** [2]===[ 11, 12] 
FINAL RESULT*** [1]===[ 5, 7] 
FINAL RESULT*** [0]===[ 1, 3] 
FINAL RESULT*** [3, 2]===[ 16 11, 16 12] 
FINAL RESULT*** [3, 1]===[ 16 5, 16 7] 
FINAL RESULT*** [3, 0]===[ 16 1, 16 3] 
FINAL RESULT*** [2, 1]===[ 11 5, 11 7, 12 5, 12 7] 
FINAL RESULT*** [2, 0]===[ 11 1, 11 3, 12 1, 12 3] 
FINAL RESULT*** [1, 0]===[ 5 1, 5 3, 7 1, 7 3] 
FINAL RESULT*** [3, 2, 1]===[ 16 11 5, 16 11 7, 16 12 5, 16 12 7] 
FINAL RESULT*** [3, 2, 0]===[ 16 11 1, 16 11 3, 16 12 1, 16 12 3] 
FINAL RESULT*** [3, 1, 0]===[ 16 5 1, 16 5 3, 16 7 1, 16 7 3] 
FINAL RESULT*** [2, 1, 0]===[ 11 5 1, 11 5 3, 11 7 1, 11 7 3, 12 5 1, 12 5 3, 12 7 1, 12 7 3] 
FINAL RESULT*** [3, 2, 1, 0]===[ 16 11 5 1, 16 11 5 3, 16 11 7 1, 16 11 7 3, 16 12 5 1, 16 12 5 3, 16 12 7 1, 16 12 7 3] 

Мне нужен только

FINAL RESULT*** [3, 2, 1]===[ 16 11 5, 16 11 7, 16 12 5, 16 12 7] 
FINAL RESULT*** [3, 2, 0]===[ 16 11 1, 16 11 3, 16 12 1, 16 12 3] 
FINAL RESULT*** [3, 1, 0]===[ 16 5 1, 16 5 3, 16 7 1, 16 7 3] 
FINAL RESULT*** [2, 1, 0]===[ 11 5 1, 11 5 3, 11 7 1, 11 7 3, 12 5 1, 12 5 3, 12 7 1, 12 7 3] 

Мои текущий код: here

Где я должен хранить это состояние?

ответ

0

В вашем методе

private static void GenCombinations(String[] head, String[] tail, int headIndex, int tailIndex) 

вы могли бы сделать проверку на длину массива головы и вернуться, если это не три.

так добавить

if (head.length != 3) { 
     return; 
    } 

в верхней части этого метода, и он должен напечатать то, что вы хотите. Вы можете заменить 3 тем, что вам нужно, например размер карты - 1 или что вам нужно.

Смежные вопросы