Я хочу напечатать все пары с заданной суммой k

#python-3.x

#python-3.x

Вопрос:

 def printPairs(arr, n, sum):
    for i in range(0, n ):
        for j in range(i   1, n ):
            if (arr[i]   arr[j] == sum):
                print("(", arr[i], ", ", arr[j], ")", sep = "")




# Driver Code
arr = [1, 5, 7, -1, 5]

n = len(arr)
sum = 6
printPairs(arr, n, sum)
 

Комментарии:

1. ожидаемый результат: (-1, 7) (1, 5)

2. Итак, в чем ваш вопрос? Если это из Leetcode, вы должны добавить ссылку на источник и подробное описание, чтобы было понятно. `maxPairs’? Ваша программа не работает. Попробуйте этот ввод [4, 2, 1, 3, 6], цель=6

3. мой вопрос в том, что я хочу найти пары в заданном массиве = [1,5,7, -1,5], где сумма пар должна быть 6, я могу найти пары с помощью приведенного выше фрагмента кода, но мне нужен вывод как (-1,7) (1,5) … объяснение вывода заключается в том, что в обеих парах первое значение меньше следующего, и дубликатов быть не должно. Спасибо

4. Вы пытаетесь prefix-sum или используете сопоставление dictionary ? Имеет ли это количество пар какие-то ограничения?

5. Ваши ожидаемые результаты странные — должно ли это быть так: (1,5), (7, -1) вместо этого? В зависимости от позиции.

Ответ №1:

Похоже ли это на то, что он сделает эту работу за вас?

 def printPairs (array, total) :
    used = []
    for number1 in array :
        for number2 in array :
            if number1   number2 == total and number2 not in used :
                print (f'({number1}, {number2})')
                used.extend ([number1, number2])

test_array = [1, 5, 7, -1, 5]
# test_array = [4, 2, 1, 3, 6]
target = 6
printPairs (test_array, target)