สมมติว่าเรามีเมทริกซ์ที่กำหนด เราต้องหาเมทริกซ์ res ใหม่ ซึ่งมีมิติเหมือนกับเมทริกซ์ที่กำหนด โดยที่แต่ละองค์ประกอบใน res[i, j] =ผลรวมขององค์ประกอบของเมทริกซ์[r, c] สำหรับแต่ละ r ≤ ผมและ c ≤ j.
ดังนั้นหากอินพุตเป็นแบบ
8 | 2 |
7 | 4 |
แล้วผลลัพธ์ที่ได้จะเป็น
8 | 10 |
15 | 21 |
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
หากเมทริกซ์ว่างเปล่า
-
ส่งคืนเมทริกซ์
-
-
R :=จำนวนแถวของเมทริกซ์
-
C :=จำนวนคอลัมน์ของเมทริกซ์
-
สำหรับ r ในช่วง 1 ถึง R - 1 ให้ทำ
-
สำหรับ c ในช่วง 0 ถึง C - 1 ทำ
-
เมทริกซ์[r, c] :=เมทริกซ์[r, c] + เมทริกซ์[r - 1, c]
-
-
-
สำหรับ r ในช่วง 0 ถึง R - 1 ให้ทำ
-
สำหรับ c ในช่วง 1 ถึง C - 1 ทำ
-
matrix[r, c] :=matrix[r, c] + matrix[r, c - 1]
-
-
-
ส่งคืนเมทริกซ์
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def solve(matrix): if not matrix: return matrix R, C = len(matrix), len(matrix[0]) for r in range(1, R): for c in range(C): matrix[r][c] += matrix[r - 1][c] for r in range(R): for c in range(1, C): matrix[r][c] += matrix[r][c - 1] return matrix matrix = [ [8, 2], [7, 4] ] print(solve(matrix))
อินพุต
[[8, 2],[7, 4]]
ผลลัพธ์
[[8, 10], [15, 21]]