Cho ba mảng A, B, C và một giá trị sum. Ta cần kiểm tra xem có tồn tại ba phần tử a, b, c lần lượt từ ba mảng sao cho a + b + c = sum.
Ví dụ, nếu A = [2,3,4,5,6], B = [3,4,7,2,3], C = [4,3,5,6,7], sum = 12, thì kết quả là True vì 4 + 2 + 6 = 12 (4 từ A, 2 từ B, 6 từ C).
Thuật toán giải quyết
- Duyệt ba vòng lặp lồng nhau qua các chỉ số
i,j,kcủa ba mảng. - Nếu
A[i] + B[j] + C[k] == sumthì trả vềTrue. - Sau khi duyệt hết, trả về
False.
Ví dụ minh họa
def is_sum_from_three_arr(A, B, C, sum):
for i in range(len(A)):
for j in range(len(B)):
for k in range(len(C)):
if A[i] + B[j] + C[k] == sum:
return True
return False
A = [2, 3, 4, 5, 6]
B = [3, 4, 7, 2, 3]
C = [4, 3, 5, 6, 7]
sum_val = 12
print(is_sum_from_three_arr(A, B, C, sum_val)) # True
Đầu vào
[2,3,4,5,6], [3,4,7,2,3], [4,3,5,6,7], 12
Đầu ra
True