题目信息

题目类型
提高级
题目年份
2022
题目题型
综合题
关 键 词
归并第k小

题目题干

第 19 题

(1)(归并第 k 小) 已知两个长度均为 n 的有序数组 a1 和 a2(均为递增序,但不保证严 格单调递增),并且给定正整数 k(1≤k≤2n),求数组 a1 和 a2 归并排序后的数组里 第 k 小的数值。sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

试补全程序。sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. #include <bits/stdc++.h> 
  2. using namespace std; 
  3.  
  4. int solve(int *a1, int *a2, int n, int k) { 
  5.     int left1 = 0, right1 = n - 1; 
  6.     int left2 = 0, right2 = n - 1; 
  7.     while (left1 <= right1 && left2 <= right2) { 
  8.         int m1 = (left1 + right1) >> 1; 
  9.         int m2 = (left2 + right2) >> 1; 
  10.         int cnt = ①; 
  11.         if (②) { 
  12.             if (cnt < k) left1 = m1 + 1; 
  13.             else right2 = m2 - 1; 
  14.         } else { 
  15.             if (cnt < k) left2 = m2 + 1; 
  16.             else right1 = m1 - 1; 
  17.         } 
  18.     } 
  19.     if (③) { 
  20.         if (left1 == 0) { 
  21.             return a2[k - 1]; 
  22.         } else { 
  23.             int x = a1[left1 - 1], ④; 
  24.             return std::max(x, y); 
  25.         }  
  26.     } else { 
  27.             if (left2 == 0) { 
  28.                 return a1[k - 1]; 
  29.             } else { 
  30.                 int x = a2[left2 - 1], ⑤; 
  31.                 return std:: max(x, y); 
  32.             } 
  33.     } 
sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
①~⑤处应填( )sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
1.sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 A. (m1 + m2) * 2sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 B. (m1 - 1) + (m2 - 1)sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 C. m1 + m2sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 D. (m1 + 1) + (m2 + 1)sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2.sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 A. a1[m1] == a2[m2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 B. a1[m1] <= a2[m2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 C. a1[m1] >= a2[m2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 D. a1[m1] != a2[m2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
3.sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 A. left1 == right1sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 B. left1 < right1sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 C. left1 > right1sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 D. left1 != right1sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
4.sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 A. y = a1[k - left2 - 1]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 B. y = a1[k - left2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 C. y = a2[k - left1 - 1]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 D. y = a2[k - left1]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
5.sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 A. y = a1[k - left2 - 1]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 B. y = a1[k - left2]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 C. y = a2[k - left1 - 1]sw5100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 D. y = a2[k - left1]

答案解析

相关题目

第 20 题 (2)(容器分水) 有两个容器,容器 1 的容量为为 a 升,容器 2 的容量为 b 升;同时允许下列的三种操作,分别为: FILL(i):用水龙头将容器 i(i \in {1,2}
第 19 题 (1)(归并第 k 小) 已知两个长度均为 n 的有序数组 a1 和 a2(均为递增序,但不保证严 格单调递增),并且给定正整数 k(1≤k≤2n),求数组 a1 和 a2 归并排序后的
第 18 题 (3) #include <iostream>   #include <algorithm>     using namespace std;     cons
第 17 题 (2) #include <iostream>     using namespace std;     const int MAXN = 105;     int n, m
第 16 题 (1) #include <iostream>   #include <string>   #include <vector>      using 
第 15 题 ack 函数在输入参数“(2,2)”时的返回值为()。 unsigned ack(unsigned m, unsigned n) {      if (m == 0) return 
第 14 题 以比较为基本运算,在 n 个数的数组中找最大的数,在最坏情况下至少要做( )次运算。 A.n/2 B.n-1 C.n D.n+1
第 13 题 对于给定的 n,分析以下代码段对应的时间复杂度,其中最为准确的时间复杂度为( )。 int i, j, k = 0; for (i = 0; i < n; i++) { f
第 12 题 给定地址区间为 0~9 的哈希表,哈希函数为 h(x) = x % 10,采用线性探查的冲突解决策略(对于出现冲突情况,会往后探查第一个空的地址存储;若地址 9 冲突了则从地址 0 重新
第 11 题 小明希望选到形如“省 A·LLDDD ”的车牌号。车牌号在“·”之前的内容固定的 5 位号码中,前 2 位必须是大写英文字母,后 3 位必须是阿拉伯数字(L代表 A 至 Z,D 表示

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢