From 5dc67e8bc7a171acb214381bb740c92f014239b5 Mon Sep 17 00:00:00 2001 From: ductnn <trannhuduc531998@gmail.com> Date: Thu, 14 Dec 2023 13:54:18 +0700 Subject: [PATCH] add sol --- ...erenceBetweenOnesAndZerosInRowAndColumn.go | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 leetcode/2482.DifferenceBetweenOnesAndZerosInRowAndColumn/differenceBetweenOnesAndZerosInRowAndColumn.go diff --git a/leetcode/2482.DifferenceBetweenOnesAndZerosInRowAndColumn/differenceBetweenOnesAndZerosInRowAndColumn.go b/leetcode/2482.DifferenceBetweenOnesAndZerosInRowAndColumn/differenceBetweenOnesAndZerosInRowAndColumn.go new file mode 100644 index 0000000..da06355 --- /dev/null +++ b/leetcode/2482.DifferenceBetweenOnesAndZerosInRowAndColumn/differenceBetweenOnesAndZerosInRowAndColumn.go @@ -0,0 +1,56 @@ +package main + +import ( + "fmt" +) + +func onesMinusZeros(grid [][]int) [][]int { + m := len(grid) + n := len(grid[0]) + + rows := make([]int, m) + cols := make([]int, n) + + diff := make([][]int, m) + + for i, row := range grid { + diff[i] = make([]int, n) + for j, v := range row { + rows[i] += v + cols[j] += v + } + } + + for i := 0; i < m; i++ { + for j := 0; j < n; j++ { + diff[i][j] = rows[i] + cols[j] - (n - rows[i]) - (m - cols[j]) + } + } + + return diff +} + +func onesMinusZeros1(grid [][]int) [][]int { + m, n := len(grid), len(grid[0]) + oneRows, oneCols := make([]int, m), make([]int, n) + + for i := 0; i < m; i++ { + for j := 0; j < n; j++ { + oneRows[i] += grid[i][j] + grid[i][j] + oneCols[j] += grid[i][j] + grid[i][j] + } + } + + for i := 0; i < m; i++ { + for j := 0; j < n; j++ { + grid[i][j] = oneRows[i] + oneCols[j] - m - n + } + } + + return grid +} + +func main() { + grid := [][]int{{0, 1, 1}, {1, 0, 1}, {0, 0, 1}} + fmt.Println(onesMinusZeros(grid)) +}