2500. Delete Greatest Value in Each Row (LeetCode) (solution: C++, C#)

  


Problem Name: 2500.  Delete Greatest Value in Each Row
Problem Link: https://leetcode.com/problems/delete-greatest-value-in-each-row/description/
Difficulty: Easy
Tag: Array | Matrix | Sorting
Language: C# | C++
OJ: LeetCode

Algorithm:
Sorts each row of a 2D array in descending order and then calculates the sum of the maximum values for each column. The result is the sum of the largest elements in each column after sorting the rows.

Code(C#)

public class Solution
{
    public int DeleteGreatestValue(int[][] grid)
    {
        int answer = 0;
        for (int i = 0; i < grid.Length; i++)
        {
            Array.Sort(grid[i]);
            Array.Reverse(grid[i]);
        }
        int rowSize = grid.Length;
        int columnSize = grid[0].Length;
        for (int z = 0; z < columnSize; z++)
        {
            int[] array = new int[rowSize];
            for (int i = 0; i < rowSize; i++)
            {
                for (int j = z; j <= z; j++)
                    array[i] = grid[i][j];
            }
            int max = 0;
            for (int i = 0; i < grid.Length; i++)
                max = Math.Max(max,array[i]);
            answer += max;
        }
        return answer;
    }
}



Code(C++)
class Solution {
public:
    int deleteGreatestValue(vector<vector<int>>& grid) {
        int answer = 0;
        int rowSize = grid.size();
        int columnSize = grid[0].size();
        for (int i = 0; i < rowSize; i++) {
            sort(grid[i].begin(), grid[i].end());
            reverse(grid[i].begin(), grid[i].end());
        }
        for (int i = 0; i < columnSize; i++) {
            int max = 0;
            for (int j = 0; j < rowSize; j++) {
                max = std::max(max, grid[j][i]);
            }
            answer += max;
        }
        return answer;
    }
};