前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >菜鸟的每日力扣系列——1380. 矩阵中的幸运数(#Day38)

菜鸟的每日力扣系列——1380. 矩阵中的幸运数(#Day38)

作者头像
才浅Coding攻略
发布2022-12-12 17:45:13
发布2022-12-12 17:45:13
18900
代码可运行
举报
文章被收录于专栏:才浅coding攻略才浅coding攻略
运行总次数:0
代码可运行

力扣1380. 矩阵中的幸运数

由于题目中已说明矩阵中数字各不相同,不用考虑去重的情况,可以直接模拟逻辑来实现,先找出每一行的所有元素中的最小值存到数组中,再找出每一列的所有元素中最大值存到数组中,如果两数相等,即为最后的结果。

Python实现:

代码语言:javascript
代码运行次数:0
复制
from typing import List


def luckyNumbers(matrix: List[List[int]]) -> List[int]:
    rows_min = [min(rows) for rows in matrix]  # 每行中最小值,下标即为列号
    cols_max = [max(cols) for cols in zip(*matrix)]  # 每列中最大值,下标即为行号
    res = []
    print(rows_min)  # [3, 9, 15]
    print(cols_max)  # [15, 16, 17]
    for i, row in enumerate(matrix):
        for j, value in enumerate(row):
            if value == rows_min[i] and value == cols_max[j]:
                res.append(value)
    return res


matrix = [[3, 7, 8], [9, 11, 13], [15, 16, 17]]
print(luckyNumbers(matrix))  # [15]

对于Golang,其math库中包含max/min函数,但是针对float64类型的,没有int整型,所以需要自己实现。

Golang实现:

代码语言:javascript
代码运行次数:0
复制
package main

import "fmt"

func min(a, b int) int {
  if a < b {
    return a
  }
  return b
}

func max(a, b int) int {
  if a > b {
    return a
  }
  return b
}

func luckyNumbers(matrix [][]int) []int {
  a, b := 0, 100005
  for _, row := range matrix {
    cur := 100005
    for _, v := range row {
      cur = min(v, cur) // 维护行的最小值
    }
    a = max(a, cur)
  }
  for j := 0; j < len(matrix[0]); j++ {
    cur := 0
    for i := 0; i < len(matrix); i++ {
      cur = max(matrix[i][j], cur) // 找到列中的最大值
    }
    b = min(b, cur)
  }
  if a == b {
    return []int{a}
  }
  return []int{}
}

func main() {
  var matrix = [][]int{{3, 7, 8}, {9, 11, 13}, {15, 16, 17}}
  fmt.Println(matrix)               // [[3 7 8] [9 11 13] [15 16 17]]
  fmt.Println(luckyNumbers(matrix)) // [15]
}

(ps: 简单预告下,本周末前将会整理出一篇关于python转到golang的语法区别,以及分享一些阿巩自己总结的小方法🌈)

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 才浅coding攻略 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档