Trong phần này, chúng ta sẽ xem một chương trình Python đếm các số âm trong ma trận được sắp xếp theo hàng và cột với giải pháp tối ưu.
Mảng sắp xếp theo hàng và cột nghĩa là mỗi giá trị tại bất kỳ chỉ số nào đều nhỏ hơn hoặc bằng giá trị tại chỉ số cột tiếp theo và hàng tiếp theo.
Ví dụ ma trận M
M = [[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]]
Trong ma trận M trên, cột đầu tiên của hàng đầu tiên là -40, nhỏ hơn giá trị cột tiếp theo trong cùng hàng là -12 và cũng nhỏ hơn giá trị hàng tiếp theo trong cùng cột là -20, và cứ thế.
Ví dụ 2 - Chương trình hoàn chỉnh
# Ma trận phải được sắp xếp theo thứ tự tăng dần. Nếu không, thuật toán sẽ không hoạt động đúng
matrix = [
[-40, -12, 1, 5],
[-20, -2, 5, 15],
[-22, -1, 13, 18],
[-12, 0, 15, 38]
]
# Lấy số hàng
rowCount = len(matrix)
columnCount = 0
# Lấy số cột
for i in matrix[0]:
columnCount += 1
a = 0
b = 0
count_Of_Negative_Integer = 0
while a < rowCount and b < columnCount:
if matrix[a][b] >= 0:
a += 1
b = 0
else:
count_Of_Negative_Integer += 1
b += 1
print("Số lượng số nguyên âm trong ma trận đã sắp xếp:", count_Of_Negative_Integer)
Kết quả
Số lượng số nguyên âm trong ma trận đã sắp xếp: 7
Trong chương trình trên:
>=0: đầu tiên chúng ta tìm đếm số nguyên âm, nhỏ hơn 0.- Chương trình này cũng có thể dùng để đếm số nguyên nhỏ hơn bất kỳ số nguyên cụ thể nào (n). Ví dụ: để đếm số nguyên nhỏ hơn hoặc bằng 5, sử dụng
>5.