跳到主要内容

786.第K个最小的质数分数

链接:786.第K个最小的质数分数
难度:Medium
标签:数组、双指针、二分查找、排序、堆(优先队列)
简介:给你一个按递增顺序排序的数组 arr 和一个整数 k 。数组 arr 由 1 和若干 素数   组成,且其中所有整数互不相同。对于每对满足 0 < i < j < arr.length 的 i 和 j ,可以得到分数 arr[i] / arr[j] 。那么第  k  个最小的分数是多少呢? 。

题解 1 - typescript

  • 编辑时间:2021-11-29
  • 执行用时:1804ms
  • 内存消耗:95.9MB
  • 编程语言:typescript
  • 解法介绍:排序。
function kthSmallestPrimeFraction(arr: number[], k: number): number[] {
const n = arr.length;
const list: number[][] = [];
for (let i = 0; i < n; i++) {
for (let j = i + 1; j < n; j++) {
list.push([arr[i], arr[j]]);
}
}
list.sort(([num11, num12], [num21, num22]) => num11 / num12 - num21 / num22);
return list[k - 1];
}