Posts

Showing posts with the label todo

1329. Sort the Matrix Diagonally

Image
https://leetcode.com/problems/sort-the-matrix-diagonally/ Given a  m * n  matrix  mat  of integers, sort it diagonally in ascending order from the top-left to the bottom-right then return the sorted array. Example 1: Input: mat = [[3,3,1,1],[2,2,1,2],[1,1,1,2]] Output: [[1,1,1,1],[1,2,2,2],[1,2,3,3]] Constraints: m == mat.length n == mat[i].length 1 <= m, n <= 100 1 <= mat[i][j] <= 100 --- Intuition Collect each diagonal into a data structure Note r - c for each cell uniquely identifies the diagonal Note There are  (m + n - 1) diagonals Sort each diagonal Map the sorted element back to the matrix Note - Math.min(r, c) rightly identifies index of element from data structure --- Time - O((m + n) * log(m + n) + m * n) Space - O(m * n) --- Note - Problem statement mentions m[i][j] <= 100 and m, n between 1.. 100 Counting sort is faster in this case TODO - Implement counting sort...

73. Set Matrix Zeroes

Given a  m  x  n  matrix, if an element is 0, set its entire row and column to 0. Do it  in-place . Example 1: Input: [   [1,1,1],   [1,0,1],   [1,1,1] ] Output: [   [1,0,1],   [0,0,0],   [1,0,1] ] Example 2: Input: [   [0,1,2,0],   [3,4,5,2],   [1,3,1,5] ] Output: [   [0,0,0,0],   [0,4,5,0],   [0,3,1,0] ] Follow up: A straight forward solution using O( m n ) space is probably a bad idea. A simple improvement uses O( m  +  n ) space, but still not the best solution. Could you devise a constant space solution? --- Intuition We cannot flip every cell in row or column to zero when we encounter a zero, this would mean we potentially end up with a matrix of all zeros. We need to identify which cells are zero in the original matrix, and then use that information 1. O(m*n) solution - additional array which stores the right cell to flip bits on, and then parse tha...