Đưa ra một danh sách các số nguyên và biến số nguyên K, hãy viết một chương trình Python để tìm tất cả các cặp trong danh sách với Sum K.
Examples:
Input : lst =[1, 5, 3, 7, 9] K = 12 Output : [[5, 7], [3, 9]] Input : lst = [2, 1, 5, 7, -1, 4] K = 6 Output : [[2, 4], [1, 5], [7, -1]]
& nbsp; Phương pháp số 1: Pythonic ngây thơ
Method #1 : Pythonic Naive
Đây là một cách tiếp cận ngây thơ cho vấn đề trên. Đầu tiên, chúng tôi lấy một danh sách trống ‘res, và bắt đầu một vòng lặp và đi qua từng yếu tố của danh sách số nguyên đã cho. Trong mỗi lần lặp, bật phần tử, lưu trữ nó trong ‘num, tìm sự khác biệt còn lại cho tổng K và kiểm tra xem sự khác biệt có tồn tại trong danh sách đã cho hay không.
def
findPairs[lst, K]:
res
=
[]
while
lst:
def
0def
1=
def
3
____10def
5=
def
7def
8 def
9
def
0____21 def
5findPairs[lst, K]:
3 lst:
findPairs[lst, K]:
5findPairs[lst, K]:
6
findPairs[lst, K]:
8
0
1
2=
4
5
6
7
6
9
6res
1
6res
3____44
def
7=
res
7
res
8res
9
& nbsp; Phương pháp #2: Sử dụng =
0
Method #2 : Using =
0
Cách tiếp cận này tuân theo phương pháp tương tự như đã thảo luận ở trên bằng cách sử dụng =
0.
=
2 =
3=
4 =
5
def
findPairs[lst, K]:
res
=
[]
while
lst:
def
0def
1=
def
3
____10def
5=
def
7def
8 def
9
def
0____21 def
5findPairs[lst, K]:
3 lst:
findPairs[lst, K]:
5lst:
4
findPairs[lst, K]:
5lst:
6
0
1
2=
4
5
6
7
6
9
6res
1
6res
3____44
def
7=
res
7
& nbsp; Phương pháp #2: Sử dụng =
0
Cách tiếp cận này tuân theo phương pháp tương tự như đã thảo luận ở trên bằng cách sử dụng =
0.
Method #3 : def
18 [Naive method]
=
2 =
3=
4 =
5
[]
3=
[]
5
[]
7 []
8findPairs[lst, K]:
3 lst:
res
=
[]
while
lst:
def
0def
1=
def
3
findPairs[lst, K]:
5def
50def
40def
52
5def
54
0
1
2=
4
5
6
7
6
9
6res
1
6res
3____44
def
7=
res
7
res
8res
9
& nbsp; Phương pháp #2: Sử dụng =
0
Method #4 : def
18 [Efficient method]
[]
3=
[]
5
[]
7 []
8findPairs[lst, K]:
3 lst:
____10
2=
def
7def
8
6
2=
4
5
6
7
6
9
6res
1
6res
3____44
def
7=
res
7
res
8res
9