मान लीजिए हमारे पास एक दी गई मैट्रिक्स है, हमें एक नई मैट्रिक्स res ढूंढनी है, जिसका डायमेंशन दी गई मैट्रिक्स के समान हो जहां res[i, j] = sum of the elements of matrix[r, c] for each r ≤ i, and c ≤ j हो।
उदाहरण के लिए, यदि इनपुट है:
| 8 | 2 |
| 7 | 4 |
तो आउटपुट होगा:
| 8 | 10 |
| 15 | 21 |
समाधान दृष्टिकोण
यह 2D प्रीफिक्स सम (क्यूमुलेटिव सम) समस्या है। हम पहले पंक्तियों के साथ क्यूमुलेटिव सम की गणना करते हैं, फिर स्तंभों के साथ।
- यदि मैट्रिक्स खाली है, तो इसे वापस लौटाएं।
- पहले प्रत्येक सेल में ऊपर के सेल का मान जोड़ें (पंक्ति-वार क्यूमुलेटिव सम)।
- फिर प्रत्येक सेल में बाएं के सेल का मान जोड़ें (स्तंभ-वार क्यूमुलेटिव सम)।
- परिणामी मैट्रिक्स 2D प्रीफिक्स सम मैट्रिक्स होगी।
पायथन कार्यान्वयन
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]]