当前位置: 首页 > news >正文

冷色网站门户网站界面设计模板

冷色网站,门户网站界面设计模板,网站官网认证加v怎么做,灰色关键词网站建设7. 1439.有序矩阵中的第K个最小数组和(困难,学习转化为373) 1439. 有序矩阵中的第 k 个最小数组和 - 力扣(LeetCode) 思想 1.给你一个 m * n 的矩阵 mat,以及一个整数 k ,矩阵中的每一行都以非递减的顺序排列。 你可以从每一行…
7. 1439.有序矩阵中的第K个最小数组和(困难,学习转化为373)

1439. 有序矩阵中的第 k 个最小数组和 - 力扣(LeetCode)

思想

1.给你一个 m * n 的矩阵 mat,以及一个整数 k ,矩阵中的每一行都以非递减的顺序排列。
你可以从每一行中选出 1 个元素形成一个数组。返回所有可能数组中的第 k 个 最小 数组和。
2.转化为373.查找和最小的K对数字,利用最小堆,373是从两个数组找前K个,而此题是m*n矩阵,但是发现假设已经取完矩阵前两行的数组和,再考虑第3行时,只要考虑前两行数组前K个值即可(因为后面的不可能是最终的K个最小数组和),所以问题就转化为得到前面i-1行的最小K个数组和数组,然后第i行考虑进来,最终再得到一个最小K个数组和数组,实现行的压缩
3.初始数组为只有0元素的数组和第一行(表示取第一行前K个元素)

代码

c++:

class Solution {
public:vector<int> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) {int n1 = nums1.size(), n2 = nums2.size();priority_queue<tuple<int, int, int>> pq;vector<int> res;for (int i = 0; i < min(n1, k); ++i) {pq.emplace(-nums1[i] - nums2[0], i,0); }while (!pq.empty() && res.size() < k) {auto t = pq.top();pq.pop();int i = get<1>(t), j = get<2>(t);res.push_back(nums1[i] + nums2[j]);if (j + 1 < n2)pq.emplace(-nums1[i] - nums2[j + 1], i,j + 1); }return res;}int kthSmallest(vector<vector<int>>& mat, int k) {int n = mat.size();vector<int> ini = {0};for (auto& row : mat) {ini = kSmallestPairs(row, ini, k);}return ini.back();}
};
8. 786. 第K个最小的质数分数(中等)
思想

1.给你一个按递增顺序排序的数组 arr 和一个整数 k 。数组 arr 由 1 和若干 质数 组成,且其中所有整数互不相同。
对于每对满足 0 <= i < j < arr.length 的 i 和 j ,可以得到分数 arr[i] / arr[j] 。
那么第 k 个最小的分数是多少呢?  以长度为 2 的整数数组返回你的答案, 这里 answer[0] == arr[i] 且 answer[1] == arr[j] 。
2.依旧转化为373.查找和最小的K对数字,只不过nums2是倒序的arr,且多个条件i+j!=n-1

代码

c++:

class Solution {
public:vector<int> kthSmallestPrimeFraction(vector<int>& arr, int k) {int n = arr.size();vector<int> arr2 = arr;vector<vector<int>> res;reverse(arr2.begin(), arr2.end());priority_queue<tuple<double, int, int>> pq;for (int i = 0; i < min(n - 1, k); ++i)pq.emplace(-1.0 * arr[i] / arr2[0], i, 0);while (res.size() < k && !pq.empty()) {auto t = pq.top();pq.pop();int i = get<1>(t), j = get<2>(t);if (i + j == n - 1)continue;res.push_back({arr[i], arr2[j]});if (j + 1 < n)pq.emplace(-1.0 * arr[i] / arr2[j + 1], i, j + 1);}return res.back();}
};
http://www.yayakq.cn/news/957564/

相关文章:

  • 扬中网站建设 优帮云安徽华夏网站建设
  • 祁县网站建设免费下载歌曲的网站
  • 做视频网站要多大带宽设计参考网站推荐
  • 安阳建设局网站广告公司会建设网站吗
  • 网站开发难学吗无安全警告的浏览器
  • 网站建设刂金手指下拉十五wordpress的好
  • 网站推广对企业的优势正规网站建设
  • 湖北现代城市建设集团网站一学一做教育视频网站
  • 免费推广网站教程wordpress重定向seo
  • wordpress设置分享正规的网站优化推广公司
  • 北京网站建设华网天下上海企业营销型网站建设
  • 自媒体自助下单网站怎么做医院网站加快建设方案
  • 网站的域名怎么起西安建设网站电话号码
  • 培训机构活动策划网站php多语言网站开发
  • 东莞网站建设主要学什么个人网站备案麻烦吗
  • 怎么用vs2017做网站xampp wordpress 建站
  • 怎么提高网站流量openshift 做网站
  • 用jsp做的网站代码seo是什么意思 为什么要做seo
  • 官方网站的优势关键字优化
  • 网站500错误 虚拟主机好看的主题wordpress
  • 更合高明网站建设网站备案 收费
  • 那个网站做图片好看的中国最强十大央企排名
  • 电子商务网站建设人才调研wordpress 首页标题
  • 做网站的服务器用什么 系统好深圳松岗网站建设
  • 郑州建设信息网站恒华大厦做网站公司
  • 科技局网站建设方案建设企业网站进去无法显示
  • 网站怎么做gps定位网站开发项目的规划与设计文档
  • 个人网站官网响应式购物网站
  • 账号权重查询入口站长工具php做网站一般用什么软件
  • 专业网站设计服务商苏州保洁公司招聘保洁区域经理