Golang | Leetcode Golang题解之第378题有序矩阵中第K小的元素 ...

打印 上一主题 下一主题

主题 551|帖子 551|积分 1653

题目:

题解:
  1. func kthSmallest(matrix [][]int, k int) int {
  2.     n := len(matrix)
  3.     left, right := matrix[0][0], matrix[n-1][n-1]
  4.     for left < right {
  5.         mid := left + (right - left) / 2
  6.         if check(matrix, mid, k, n) {
  7.             right = mid
  8.         } else {
  9.             left = mid + 1
  10.         }
  11.     }
  12.     return left
  13. }
  14. func check(matrix [][]int, mid, k, n int) bool {
  15.     i, j := n - 1, 0
  16.     num := 0
  17.     for i >= 0 && j < n {
  18.         if matrix[i][j] <= mid {
  19.             num += i + 1
  20.             j++
  21.         } else {
  22.             i--
  23.         }
  24.     }
  25.     return num >= k
  26. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表