From 2d3e268d3ead623cd9747fc1d71beea0b2f25c3d Mon Sep 17 00:00:00 2001 From: Lam Haoyin Date: Tue, 15 Feb 2022 12:33:08 +0800 Subject: [PATCH] add: 220215-CN [golang] --- 2202/220215-CN.go | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 2202/220215-CN.go diff --git a/2202/220215-CN.go b/2202/220215-CN.go new file mode 100644 index 0000000..ba1f357 --- /dev/null +++ b/2202/220215-CN.go @@ -0,0 +1,48 @@ +package main + +import "fmt" + +func luckyNumbers(matrix [][]int) []int { + m, n := len(matrix), len(matrix[0]) + + rowMin := make([]int, m) + colMax := make([]int, n) + + for i := 0; i < m; i++ { + rowMin[i] = 0x7FFFFFFF + for j := 0; j < n; j++ { + if matrix[i][j] < rowMin[i] { + rowMin[i] = matrix[i][j] + } + } + } + + for j := 0; j < n; j++ { + colMax[j] = -0x7FFFFFFF + for i := 0; i < m; i++ { + if matrix[i][j] > colMax[j] { + colMax[j] = matrix[i][j] + } + } + } + + ret := make([]int, 0) + for i := 0; i < m; i++ { + for j := 0; j < n; j++ { + if matrix[i][j] == rowMin[i] && matrix[i][j] == colMax[j] { + ret = append(ret, matrix[i][j]) + } + } + } + + return ret +} + +func main() { + args := [][]int{ + {3, 7, 8}, + {9, 11, 13}, + {15, 16, 17}, + } + fmt.Println(luckyNumbers(args)) +}