第187周竞赛 难度H
是一道考察解决问题的思路的题目,如何优化问题是关键。
暴力方法
首先可以采用暴力的方法,从上往下依次进行计算。也就是首先计算第一行的各数,然后将第一行的各数加上第二行的各数得到mm个数字,进行排序取前k个。然后对这k个数字与第三行的数字在依次进行相加,得到km个,取前k个。知道到达最后一行。
- 时间复杂度: O ( n ∗ ( k ∗ m + k l o g k ) ) O(n*(k*m+klogk)) O(n∗(k∗m+klogk)),或者写为 O ( n ∗ k ∗ m ) O(n*k*m) O(n∗k∗m)
- 空间复杂度: O ( k ) O(k) O(k)主要是维护一个数组
class Solution:
def kthSmallest(self, mat