ให้ Binary Matrix หาจำนวนเซลล์ที่:
matrix[r][c] == 1- Row
rมี 1 เพียงตัวเดียว (ที่คอลัมน์c) - Column
cมี 1 เพียงตัวเดียว (ที่แถวr)
ตัวอย่าง: [[0,0,1],[1,0,0],[0,1,0]] → 3 (ตำแหน่ง (0,2), (1,0), (2,1))
ขั้นตอน (O(m×n))
- คำนวณ
row[r] = sum(matrix[r])และcol[c] = sum(matrix[*][c]) - วนทุกเซลล์ ถ้า
matrix[r][c]==1 and row[r]==1 and col[c]==1→ นับ +1
ตัวอย่างโค้ด
def solve(matrix):
if not matrix:
return 0
row = [sum(r) for r in matrix]
col = [sum(c) for c in zip(*matrix)]
m, n = len(matrix), len(matrix[0])
res = 0
for r in range(m):
for c in range(n):
if matrix[r][c] == 1 and row[r] == 1 and col[c] == 1:
res += 1
return res
matrix = [[0,0,1],[1,0,0],[0,1,0]]
print(solve(matrix)) # Output: 3อินพุต
[[0, 0, 1],[1, 0, 0],[0, 1, 0]]
เอาต์พุต
3