diff --git a/README.md b/README.md index 8b24025..d557fb5 100644 --- a/README.md +++ b/README.md @@ -381,6 +381,11 @@ LeetCode 与 LintCode 解题记录。此为个人练习仓库,代码中对重 - LeetCode 718. 最长重复子数组 - LintCode 79. 最长公共子串 +- [有序矩阵中第K小的元素](src/array/kth-smallest-element-in-a-sorted-matrix.js) + + - LeetCode 378. 有序矩阵中第K小的元素 + - LintCode 401. 排序矩阵中的从小到大第k个数 + ## 栈 - [最大矩阵](src/stack/maximal-rectangle.js) diff --git a/src/array/kth-smallest-element-in-a-sorted-matrix.js b/src/array/kth-smallest-element-in-a-sorted-matrix.js new file mode 100644 index 0000000..b85c9bb --- /dev/null +++ b/src/array/kth-smallest-element-in-a-sorted-matrix.js @@ -0,0 +1,8 @@ +/** + * @param {number[][]} matrix + * @param {number} k + * @return {number} + */ +export const kthSmallest = function (matrix, k) { + return matrix.flat().sort((a, b) => a - b)[k - 1] +} diff --git a/test/array/kth-smallest-element-in-a-sorted-matrix.test.js b/test/array/kth-smallest-element-in-a-sorted-matrix.test.js new file mode 100644 index 0000000..c9720f8 --- /dev/null +++ b/test/array/kth-smallest-element-in-a-sorted-matrix.test.js @@ -0,0 +1,20 @@ +import { kthSmallest } from '../../src/array/kth-smallest-element-in-a-sorted-matrix.js' + +test('有序矩阵中第K小的元素', () => { + expect(kthSmallest([ + [1, 5, 9], + [10, 11, 13], + [12, 13, 15] + ], 8)).toBe(13) + + expect(kthSmallest([ + [1, 5, 7], + [3, 7, 8], + [4, 8, 9] + ], 4)).toBe(5) + + expect(kthSmallest([ + [1, 2], + [3, 4] + ], 3)).toBe(3) +})