给定一个n*n的矩阵,矩阵中的每一行、每一列元素按升序排序,找出矩阵中第k小的元素
Example:
matrix = [
[ 1, 5, 9],
[10, 11, 13],
[12, 13, 15]
],
k = 8,
return 13.
注意:你可以认为k总是有效的,1<=k<=n^2
利用python的函数库完成算法
def kthSmallest(self, matrix, k):
"""
:type matrix: List[List[int]]
:type k: int
:rtype: int
"""
import operator
from functools import reduce
nums = reduce(operator.add, matrix)
if k > len(nums):
return
else:
nums.sort()
return nums[k-1]
operator, reduce, map, collections.Counter在算法中常常会被用到,多加练习,熟练运用。
君子性非异也,善假于物也。嘻嘻