给你一个按递增顺序排序的数组arr和一个整数k。数组arr由1和若干素数组成,且其中所有整数互不相同。
对于每对满足0<=i 最小质数(最小质数是几最小合数是几) 那么第k个最小的分数是多少呢?以长度为2的整数数组返回你的答案,这里answer[0]==arr[i]且answer[1]==arr[j]。 示例1:输入:arr=[1,2,3,5],k=3输出:[2,5] 解释:已构造好的分数,排序后如下所示: 1/5,1/3,2/5,1/2,3/5,2/3 很明显第三个最小的分数是2/5 示例2:输入:arr=[1,7],k=1输出:[1,7] 提示:2<=arr.length<=1000 1<=arr[i]<=3*104 arr[0]==1 arr[i]是一个素数,i>0 arr中的所有数字互不相同,且按严格递增排序 1<=k<=arr.length*(arr.length-1)/2 1、自定义排序;时间复杂度O(n^2log(n)),空间复杂度O(n^2) 2、堆;时间复杂度O(nlog(n)),空间复杂度O(n) 3、二分查找;时间复杂度O(nlog(n)),空间复杂度O(1) Hard题目,topK问题
发表评论