Javascript Program to Maximize sum of diagonal of a matrix by rotating all rows or all columns Last Updated : 02 Feb, 2022 Comments Improve Suggest changes Like Article Like Report Given a square matrix, mat[][] of dimensions N * N, the task is find the maximum sum of diagonal elements possible from the given matrix by rotating either all the rows or all the columns of the matrix by a positive integer. Examples: Input: mat[][] = { { 1, 1, 2 }, { 2, 1, 2 }, { 1, 2, 2 } }Output: 6 Explanation: Rotating all the columns of matrix by 1 modifies mat[][] to { {2, 1, 2}, {1, 2, 2}, {1, 1, 2} }. Therefore, the sum of diagonal elements of the matrix = 2 + 2 + 2 = 6 which is the maximum possible. Input: A[][] = { { -1, 2 }, { -1, 3 } }Output: 2 Approach: The idea is to rotate all the rows and columns of the matrix in all possible ways and calculate the maximum sum obtained. Follow the steps to solve the problem: Initialize a variable, say maxDiagonalSum to store the maximum possible sum of diagonal elements the matrix by rotating all the rows or columns of the matrix.Rotate all the rows of the matrix by a positive integer in the range [0, N - 1] and update the value of maxDiagonalSum.Rotate all the columns of the matrix by a positive integer in the range [0, N - 1] and update the value of maxDiagonalSum.Finally, print the value of maxDiagonalSum. Below is the implementation of the above approach: JavaScript <script> // Javascript program to implement // the above approach let N = 3; // Function to find maximum sum of // diagonal elements of matrix by // rotating either rows or columns function findMaximumDiagonalSumOMatrixf(A) { // Stores maximum diagonal sum of elements // of matrix by rotating rows or columns let maxDiagonalSum = Number.MIN_VALUE; // Rotate all the columns by an integer // in the range [0, N - 1] for(let i = 0; i < N; i++) { // Stores sum of diagonal elements // of the matrix let curr = 0; // Calculate sum of diagonal // elements of the matrix for(let j = 0; j < N; j++) { // Update curr curr += A[j][(i + j) % N]; } // Update maxDiagonalSum maxDiagonalSum = Math.max(maxDiagonalSum, curr); } // Rotate all the rows by an integer // in the range [0, N - 1] for(let i = 0; i < N; i++) { // Stores sum of diagonal elements // of the matrix let curr = 0; // Calculate sum of diagonal // elements of the matrix for(let j = 0; j < N; j++) { // Update curr curr += A[(i + j) % N][j]; } // Update maxDiagonalSum maxDiagonalSum = Math.max(maxDiagonalSum, curr); } return maxDiagonalSum; } // Driver Code let mat = [[ 1, 1, 2 ], [ 2, 1, 2 ], [ 1, 2, 2 ]]; document.write( findMaximumDiagonalSumOMatrixf(mat)); // This code is contributed by souravghosh0416. </script> Output: 6 Time Complexity: O(N2) Auxiliary Space: O(1) Please refer complete article on Maximize sum of diagonal of a matrix by rotating all rows or all columns for more details! Comment More infoAdvertise with us Next Article Javascript Program to Maximize sum of diagonal of a matrix by rotating all rows or all columns K kartik Follow Improve Article Tags : Greedy Matrix JavaScript Web Technologies DSA rotation +2 More Practice Tags : GreedyMatrix Similar Reads Maximize sum of diagonal of a matrix by rotating all rows or all columns Given a square matrix, mat[][] of dimensions N * N, the task is find the maximum sum of diagonal elements possible from the given matrix by rotating either all the rows or all the columns of the matrix by a positive integer. Examples: Input: mat[][] = { { 1, 1, 2 }, { 2, 1, 2 }, { 1, 2, 2 } }Output: 8 min read Javascript Program for Maximum sum of i*arr[i] among all rotations of a given array Given an array arr[] of n integers, find the maximum that maximizes the sum of the value of i*arr[i] where i varies from 0 to n-1. Examples: Input: arr[] = {8, 3, 1, 2} Output: 29 Explanation: Lets look at all the rotations, {8, 3, 1, 2} = 8*0 + 3*1 + 1*2 + 2*3 = 11 {3, 1, 2, 8} = 3*0 + 1*1 + 2*2 + 7 min read Javascript Program to Efficiently compute sums of diagonals of a matrix Given a 2D square matrix, find the sum of elements in Principal and Secondary diagonals. For example, consider the following 4 X 4 input matrix.A00 A01 A02 A03A10 A11 A12 A13A20 A21 A22 A23A30 A31 A32 A33The primary diagonal is formed by the elements A00, A11, A22, A33. Condition for Principal Diago 3 min read Javascript Program for Queries to find maximum sum contiguous subarrays of given length in a rotating array Given an array arr[] of N integers and Q queries of the form {X, Y} of the following two types: If X = 1, rotate the given array to the left by Y positions.If X = 2, print the maximum sum subarray of length Y in the current state of the array. Examples:Â Input: N = 5, arr[] = {1, 2, 3, 4, 5}, Q = 2, 5 min read Maximize sum by selecting M elements from the start or end of rows of a Matrix Given a 2D array Blocks[][] consisting of N rows of variable length. The task is to select at most M elements with the maximum possible sum from Blocks[][] from either the start or end of a row. Examples: Input: N = 3, M = 4 Blocks[][] = {{2, 3, 5}, {-1, 7}, {8, 10}}Output: 30Explanation: Select {5} 11 min read Like