Ну, я не могу понять это неправильное поведение с помощью python.
Я написал код для проверки количества комбинаций в двух массивах, разница которых меньше или равна 1.
Каждый элемент может использоваться только один раз.
c список предназначен для хранения комбинаций для лучшего понимания.
for k in range(0,len(bs)):
c.append([])
for l in range(0,len(gs)) :
if abs(bs[k]-gs[l])<=1 and bs[k]!=-1000 and gs[l]!=-1000:
c[k].append(bs[k])
c[k].append(gs[l])
bs[k]=-1000
gs[l]=-1000
count+=1
Для некоторых входов (больших входов) он пропускает несколько комбинаций, нокогда я сортирую массивы перед сравнением, это дает точные результаты.В конце концов, это компьютер, и он не должен пропустить комбинацию, если код верен, что я чувствую.
Пример ввода:
4 1 1 1 3 3 2 5 1 2 1 21 1 1 6 1 3 1 1 1 1 2 4 1 1 4 2 2 8 2 2 1 8 2 4 3 3 8 1 3 2 3 2 1 3 8 2 2 3 1 1 2 2 5 1 4 3 1 1 3 13 1 7 1 1 1 3 2 1 2 2 3 7 2 1 4 3 2 1 1 3 4 1 1 3 5 1 8 4 1 1 1 3 10 2 2 1 2
1 1 5 2 13 22 3 6 12 1 13 8 1 1 16 1 1 5 6 2 4 6 4 2 7 4 1 7 3 3 9 5 3 1 7 4 1 6 6 8 2 2 5 2 3 16 3 6 3 8 6 1 8 1 26 5 3 4 11 3 4 8 2 13 2 5 2 7 3 3 1 8 1 4 4 2 4 7 7 1 5 7 6 3 6 9 1 1 1 3 1 11 5 2 5 11 13 1
без сортировки: 74 с сортировкой: 76
комбинаций без сортировки: т.е. 74 [[4, 5], [1, 1], [1, 1], [1, 2], [3,2], [3, 2], [2, 3], [5, 6], [1, 1], [2, 1], [1, 1], [2, 1], [1, 1], [1, 2], [1, 2], [6, 5], [1, 1], [3, 4], [1, 1], [1, 1], [1, 2], [1, 2], [2, 3], [4, 4], [1, 2], [1, 1], [4, 4], [2, 3], [2, 3], [8,8], [2, 3], [2, 3], [1, 1], [8, 7], [2, 3], [4, 5], [3, 4], [3, 2], [8, 7], [1, 2], [3, 3], [2, 3],[3, 4], [2, 2], [1, 2], [3, 4], [8, 9], [2, 3], [2, 3], [3, 4], [1, 1], [1, 1], [2, 2], [2, 1], [5, 6], [1, 1], [4, 5], [3, 4], [1, 1], [1, 1], [3, 4], [1, 1], [3, 3], [1, 2], [7, 6], [1, 1], [], [],[3, 3], [], [], [], [], [], [7, 7], [], [], [4, 5], [], [], [], [], [], [4, 5], [], [], [], [5, 6], [], [8, 8], [4, 5], [], [], [], [], [10, 11], [], [], [], []]
комбинаций с сортировкой: например, 76 [[1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1], [1,1], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [], [], [], [], [], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3],[2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [], [], [], [], [], [], [], [], [], [], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [], [], [], [], [], [], [], [], [], [4, 5], [4,5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [5, 5], [5, 6], [5, 6], [6, 6], [7, 6], [7, 6], [8, 7], [8, 7], [8, 7], [8, 7], [8, 7], [10, 9]]
Спасибо за любые советы.