码迷,mamicode.com
首页 > 其他好文 > 详细

378. 有序矩阵中第K小的元素

时间:2020-06-08 14:43:04      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:font   object   ret   矩阵   int   pytho   loading   solution   else   

技术图片
技术图片
技术图片

方法一:二分查找。

class Solution(object):
    # 二分查找
    def kthSmallest(self, matrix, k):
        """
        :type matrix: List[List[int]]
        :type k: int
        :rtype: int
        """
        n = len(matrix)
        low, high = matrix[0][0], matrix[n - 1][n - 1]
        while low < high:
            # 计算矩阵中值
            mid = low + int((high - low) / 2)
            # 统计小于等于mid的元素个数
            count = 0
            i, j = 0, n - 1
            while j >= 0 and i < n:
                if matrix[i][j] <= mid:
                    count += j + 1
                    i += 1
                else:
                    j -= 1

            if count < k:
                low = mid + 1
            else:
                high = mid
        return low

方法二:暴力解。

class Solution(object):
    # 代码一
    def kthSmallest(self, matrix, k):
        """
        :type matrix: List[List[int]]
        :type k: int
        :rtype: int
        """
        temp = []
        for i in range(len(matrix)):
            temp += matrix[i]
        temp.sort()
        return temp[k - 1]

    # 代码二
    def kthSmallest(self, matrix, k):
        """
        :type matrix: List[List[int]]
        :type k: int
        :rtype: int
        """
        m = len(matrix)
        n = len(matrix[0])
        temp = matrix[0]
        for i in range(1, m):
            for j in range(n):
                temp.append(matrix[i][j])
        temp.sort()
        return temp[k - 1]

378. 有序矩阵中第K小的元素

标签:font   object   ret   矩阵   int   pytho   loading   solution   else   

原文地址:https://www.cnblogs.com/panweiwei/p/13065237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!