HackerRank: Diagonal Difference Solution using PHP (Algorithm)
Akande Joshua

Akande Joshua @homezonic

About: Experienced Full Stack Developer with expertise in Laravel, Vue.js, Wordpress, HTML, CSS, JavaScript, PHP and MySQL.. My articles here will always be precise and short to the point, that's my style.

Location:
Lagos, Nigeria
Joined:
May 7, 2021

HackerRank: Diagonal Difference Solution using PHP (Algorithm)

Publish Date: Apr 14 '23
1 0

Diagonal Difference Solution

Given a square matrix, calculate the absolute difference between the sums of its diagonals.
For example, the square matrix is shown below:

1 2 3
4 5 6
9 8 9

The left-to-right diagonal =1 + 5 + 9 = 15. The right to left diagonal = 3 + 5+ 9 = 17. Their absolute difference is |15–17| = 2.

Function description
Complete the diagonalDifference function in the editor below. It must return an integer representing the absolute diagonal difference.

Difference takes the following parameter:

arr: an array of integers.

Input Format
The first line contains a single integer, n , the number of rows and columns in the matrix arr.

Each of the next n lines describes a row, arr[i], and consists of n space-separated integers arr[i][j].

Constraints
. — 100 ≤ arr[i][j] ≤ 100

Output Format
Print the absolute difference between the sums of the matrix’s two diagonals as a single integer.

Sample Input

11 2 4
4 5 6
10 8 -12

Sample Output

15

Explanation
The primary diagonal is:

11
5
-12

Sum across the primary diagonal: 11 + 5–12 = 4

The secondary diagonal is:

4
5
10

Sum across the secondary diagonal: 4 + 5 + 10 = 19

Difference: |4 –19| = 15

Note: |x| is the absolute value of x

Solution (Base on how i solved it)

$first = 0;
$second = 0;
$n = sizeof($arr);
for ($i = 0; $i < $n; $i++){
for ($j = 0; $j < $n; $j++){
    if ($i === $j){
        $first += $arr[$i][$j];
    }
        if ($i + $j === $n - 1){
            $second += $arr[$i][$j];
        }
    }
}
return abs($first - $second);
}
Enter fullscreen mode Exit fullscreen mode

Comments 0 total

    Add comment