1. 首页
  2. 课程学习
  3. C++/C
  4. 查找第K个元素

查找第K个元素

上传者: 2019-05-21 23:40:34上传 RAR文件 1.06MB 热度 64次
已知两个等长的升序整数序列{a1,a2,...,ak}和{b1,b2,...,bk},求序列{ai+bj}的前k小元素,其中1≤i≤k且1≤j≤k,要求时间复杂度尽可能低。思路:将(1,1,a1+b1)加入一个小根堆while(堆非空且出堆的元素总数少于k个)弹出堆顶元素(x,y,v)将(x+1,y,a{x+1}+b{y})和(x,y+1,a{x}+b{y+1})加入堆中(堆内元素间按v比较大小)
用户评论