题目:
给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。
幸运数是指矩阵中满足同时下列两个条件的元素:
在同一行的所有元素中最小
在同一列的所有元素中最大
解题代码:
func luckyNumbers (matrix [][]int) []int { sum := []int{} // 记录每行最小值 m1 := make(map[int]int) for i, ints := range matrix { min := ints[0] for _, n := range ints { if min > n { min = n } } m1[i] = min } // 记录每列最大值 m2 := make(map[int]int) for i := 0; i < len(matrix[0]); i++ { max := matrix[0][i] for j := 0; j < len(matrix); j++ { if max < matrix[j][i] { max = matrix[j][i] } } m2[i] = max } // 最后一次遍历找出符合的数字 for i, ints := range matrix { for i2, i3 := range ints { if i3 == m1[i] && i3 == m2[i2]{ sum = append(sum, i3) break } } } return sum }