摘要: 786. 第 K 个最小的素数分数 我们可以二分,L=0,R=1,那么取mid就是0.5,逐个逼近。令结果分数初始化为0/1,m=0,n=1,取完mid再在数组里找小于等于mid的分数个数,同时更新m和n的值,只要Ai/aj的值大于m/n的就更新,直到找到取完mid再在数组里找小于等于mid的分数个 阅读全文
posted @ 2020-06-26 23:00 branna 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 378. 有序矩阵中第K小的元素 第一种方法:将二维矩阵中的数存起来,然后排序输出第k个,耗时较多 class Solution { public: int kthSmallest(vector<vector<int>>& matrix, int k) { vector<int>v; for(int 阅读全文
posted @ 2020-06-26 21:06 branna 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 668. 乘法表中第k小的数 同样,二话不说写个暴力,用两个一维数组来存储行和列,用一个vector来存储乘法表中的每个数,sort排个序输出k位置的数即可, 意料之中,超时,且还是最后一组数据超时!!害### 然后用了二分来写,最小的是1,最大的数是m*n,那么取个mid, 在乘法表里记录每行有多 阅读全文
posted @ 2020-06-26 19:56 branna 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 1299. 将每个元素替换为右侧最大元素 直接从后往前更新最大值存入数组中,然后逆置数组,删去最前的,在随扈补一个-1即可。 class Solution { public: vector<int> replaceElements(vector<int>& arr) { vector<int>v; 阅读全文
posted @ 2020-06-26 16:52 branna 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 719. 找出第 k 小的距离对 思路: 首先采用了暴力求差值,11组数据超时,优化后利用map来求,结果在最后的两组超时。。然而还是要用二分写,二分差值,最小的为0,最大的是排完序后最后一个数的值减去第一个数的值,取mid,然后在原来数组里继续二分找有多少对差值cnt是小于等于mid的。 若对数c 阅读全文
posted @ 2020-06-26 13:39 branna 阅读(132) 评论(0) 推荐(0) 编辑