Given N which is the size of the N X N spiral matrix of the form:
16 15 14 13 5 4 3 12 6 1 2 11 7 8 9 10
The task is to find the sum of the diagonal elements of this matrix.
Input: N = 3 Output: 25 5 4 3 6 1 2 7 8 9 The sum of elements along its two diagonals will be 1 + 3 + 7 + 5 + 9 = 25 Input: N = 5 Output: 101
Approach: Idea behind the solution is to use the concept of Dynamic Programming. We will use array dp to store our solution. N given in the problem can either be even or odd.
When i is odd, we have to add only 4 corner elements in dp[i – 2].
dp[i] = dp[i – 2] + (i – 2) * (i – 2) + (i – 1) + (i – 2) * (i – 2) + 2 * (i – 1) + (i – 2) * (i – 2) + 3 * (i – 1) + (i – 2) * (i – 2) + 4 * (i – 1)
dp[i] = dp[i – 2] + 4 * (i – 2) * (i – 2) + 10 * (i – 1)
dp[i] = dp[i – 2] + 4 * (i) * (i) – 6 * (i – 1)
Similarly, we can check that the above formula is true when i is even.
Below is the implementation of the above approach:
- Program to swap upper diagonal elements with lower diagonal elements of matrix.
- Reverse Diagonal elements of matrix
- Squares of Matrix Diagonal Elements
- Print all the sub diagonal elements of the given square matrix
- Program to convert the diagonal elements of the matrix to 0
- Print all the super diagonal elements of the given square matrix
- Filling diagonal to make the sum of every row, column and diagonal equal of 3x3 matrix
- Find a Symmetric matrix of order N that contain integers from 0 to N-1 and main diagonal should contain only 0's
- Circular Matrix (Construct a matrix with numbers 1 to m*n in spiral way)
- Convert given Matrix into sorted Spiral Matrix
- Program to check diagonal matrix and scalar matrix
- Program to convert given Matrix to a Diagonal Matrix
- Find sum of all elements in a matrix except the elements in row and/or column of given cell?
- Form a Spiral Matrix from the given Array
- Print a given matrix in spiral form
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.