虽然已经快过去一年了,看到楼主的分享忍不住去写了这道题,用递归确实可以写得更简洁一些,不过我是在放松环境下编写的,和楼主面试场景肯定不能做比较,这是我用 Typescript 写的 AC 代码(仅作分享): ```typescript function findMedianSortedArrays( nums1: number[], nums2: number[], ): number { const N: number = nums1.length + nums2.length const mid1: number = (N + 1) >> 1 const mid2: number = N + 1 - mid1 const v1: number = findK(0, 0, mid1) if (mid1 === mid2) return v1 const v2: number = findK(0, 0, mid2) return (v1 + v2) / 2 function findK(i: number, j: number, k: number): number { if (i === nums1.length) return nums2[j + k - 1] if (j === nums2.length) return nums1[i + k - 1] if (k === 1) return Math.min(nums1[i], nums2[j]) const mid: number = k >> 1 const i2 = Math.min(nums1.length, i + mid) const j2 = Math.min(nums2.length, j + mid) return nums1[i2 - 1] < nums2[j2 - 1] ? findK(i2, j, k - (i2 - i)) : findK(i, j2, k - (j2 - j)) } } ```