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

做网站需要什么 图片视频泉州市住房和城乡建设局

做网站需要什么 图片视频,泉州市住房和城乡建设局,好的网站建设价格,宁波网站建设设计公司信息华为OD机试 2024E卷题库疯狂收录中#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题#xff08;Python/JS/C/C#xff09;》。 刷的越多#xff0c;抽中的概率越大#xff0c;私信哪吒#xff0c;备注华为OD#xff0c;加入华为OD刷题交流群#xff0c;… 华为OD机试 2024E卷题库疯狂收录中刷题点这里 专栏导读 本专栏收录于《华为OD机试真题Python/JS/C/C》。 刷的越多抽中的概率越大私信哪吒备注华为OD加入华为OD刷题交流群每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景发现新题目随时更新全天CSDN在线答疑。 一、题目描述 推荐多样性需要从多个列表中选择元素一次性要返回 N 屏数据窗口数量每屏展示 K 个元素窗口大小选择策略: 各个列表元素需要做穿插处理即先从第一个列表中为每屏选择一个元素再从第二个列表中为每屏选择一个元素依次类推。 每个列表的元素尽量均分为 N 份如果不够 N 份也要全部分配完参考样例图 (1) 从第一个列表中选择 4 条 0123分别放到 4 个窗口中 (2) 从第二个列表中选择 4 条 10111213分别放到 4 个窗口中 (3) 从第三个列表中选择 4 条 20212223分别放到 4 个窗口中 (4) 再从第一个列表中选择 4 条 4567分别放到 4 个窗口中 … (5) 再从第一个列表中选择由于数量不足 4 条取剩下的 2 条放到窗口1 和窗口2 (6) 再从第二个列表中选择由于数量不足 4 条且总的元素数达到窗口要求取 1819 放到窗口3 和窗口4 二、输入描述 第一行输入为 N表示需要输出的窗口数量取值范围 [1, 10] 第二行输入为 K表示每个窗口需要的 元素数量取值范围 [1, 100] 之后的行数不定行数取值范围 [1, 10]表示每个列表输出的元素列表。元素之间以空格隔开已经过排序处理每个列表输出的元素数量取值范围 [1, 100] 三、输出描述 输出元素列表元素数量 窗口数量 * 窗口大小元素之间以空格分隔多个窗口合并为一个列表输出参考样例 先输出窗口1的元素列表再输出窗口2的元素列表再输出窗口3的元素列表最后输出窗口4的元素列表。 备注 每个列表会保证元素数量满足窗口要求不需要考虑元素不足情况每个列表的元素已去重不需要考虑元素重复情况每个列表的元素列表均不为空不需要考虑列表为空的情况每个列表的元素列表已经过排序处理输出结果要保证不改变同一个列表的元素顺序每个列表的元素数量可能是不同的 四、测试用例 测试用例1 1、输入 4 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 2、输出 0 10 20 4 14 24 8 1 11 21 5 15 25 9 2 12 22 6 16 26 18 3 13 23 7 17 27 19 3、说明 测试用例2 1、输入 2 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 2、输出 0 10 20 1 11 21 3、说明 五、解题思路 1、问题分析 问题要求我们从多个排序好的列表中选择元素以 “轮询” 的方式将元素分配到多个窗口中。每个窗口的展示数量固定窗口数量也固定。主要目标是通过轮询方式选择元素确保列表中的元素尽量平均分布到各个窗口中同时保持列表中元素的顺序不变。 2、ArrayList LinkedList 使用 ArrayList 存储每个输入列表每个输入列表使用 LinkedList 来存储元素。 选择 LinkedList 的原因是它可以高效地在列表头部移除元素removeFirst 操作的时间复杂度为 O(1)这在轮询分配元素时非常重要。 3、具体步骤 读取窗口数量 N 和每个窗口需要的元素数量 K。接着读取多个列表每个列表包含已排序的整数。使用一个二维列表来存储输入的每个列表。每个列表使用 LinkedList 以便于从列表头部快速删除元素。创建一个一维数组 windows大小为 N * K用于存储所有窗口的元素。使用一个指针 idx 表示当前正在分配元素的位置以及一个指针 level 表示当前从哪个列表中取元素。使用一个循环直到所有窗口都填满 对于每一轮分配轮询当前列表将其前 N 个元素依次分配给 N 个窗口。如果当前列表的元素不够 N 个或者被取空则切换到下一个列表进行分配。 每轮次需要检查列表是否为空如果为空则移除以防止越界。按照窗口的列顺序进行输出将每个窗口的元素按列拼接成最终的结果。 主要使用了轮询遍历法。每次从当前列表中为每个窗口分配一个元素然后切换到下一个列表。这样可以确保元素被均匀分布在各个窗口中。 4、时间复杂度 总时间复杂度为 O(N * K)其中 N 是窗口数量K 是每个窗口的元素数量。主要耗时在于分配元素和输出结果的过程中。 六、Python算法源码 def main():import sysinput sys.stdin.readdata input().splitlines()# 读取窗口数量和每个窗口的元素数量n int(data[0])k int(data[1])# 读取输入的所有列表lists []for line in data[2:]:if line.strip() : # 本地测试时以空行作为输入截止条件breaknums list(map(int, line.split()))lists.append(nums)# 初始化窗口矩阵为一维数组windows [0] * (k * n)# 当前正在为窗口矩阵赋值的索引位置idx 0# 当前从第level个列表中取值level 0# 当窗口矩阵填满后结束循环while idx len(windows):# 当前轮次是否发生了借动作flag False# 从当前列表中取前 n 个元素for i in range(n):windows[idx] lists[level].pop(0)idx 1# 如果当前列表没有元素了则继续切到下一个列表中借if len(lists[level]) 0 and len(lists) 1:lists.pop(level) # 删除空列表level % len(lists) # 防止越界flag True # 发生了借动作# 如果没有发生借动作则切换到下一个列表if not flag:level (level 1) % len(lists) # 防止越界# 构建输出result []# 遍历窗口矩阵的每一列for j in range(n): # 遍历列号for i in range(k): # 遍历行号result.append(str(windows[i * n j])) # 将每一列的元素进行拼接print( .join(result))if __name__ __main__:main() 七、JavaScript算法源码 function main() {const fs require(fs);// 读取输入const input fs.readFileSync(/dev/stdin, utf8).split(\n);// 读取窗口数量和每个窗口的元素数量const n parseInt(input[0]);const k parseInt(input[1]);// 读取输入的所有列表let lists [];for (let i 2; i input.length; i) {const line input[i].trim();if (line ) break; // 本地测试时以空行作为输入截止条件let nums line.split( ).map(Number);lists.push(nums);}// 初始化窗口矩阵为一维数组let windows new Array(k * n);// 当前正在为窗口矩阵赋值的索引位置let idx 0;// 当前从第 level 个列表中取值let level 0;// 当窗口矩阵填满后结束循环while (idx windows.length) {// 当前轮次是否发生了借动作let flag false;// 从当前列表中取前 n 个元素for (let i 0; i n; i) {windows[idx] lists[level].shift();// 如果当前列表没有元素了则继续切到下一个列表中借if (lists[level].length 0 lists.length 1) {lists.splice(level, 1); // 删除空列表level % lists.length; // 防止越界flag true; // 发生了借动作}}// 如果没有发生借动作则切换到下一个列表if (!flag) {level (level 1) % lists.length; // 防止越界}}// 构建输出let result [];// 遍历窗口矩阵的每一列for (let j 0; j n; j) { // 遍历列号for (let i 0; i k; i) { // 遍历行号result.push(windows[i * n j]); // 将每一列的元素进行拼接}}console.log(result.join( )); }main(); 八、C算法源码 #include stdio.h #include stdlib.h// 辅助函数读取一行输入 char* read_line() {char* line NULL;size_t len 0;getline(line, len, stdin);return line; }// 辅助函数将字符串按空格分割并转换为整数数组 int* parse_integers(char* line, int* size) {int* nums malloc(100 * sizeof(int)); // 假设每行最多有100个数字*size 0;char* token strtok(line, );while (token ! NULL) {nums[(*size)] atoi(token);token strtok(NULL, );}return nums; }int main() {// 读取窗口数量和每个窗口的元素数量int n, k;scanf(%d, n);scanf(%d, k);getchar(); // 读取换行符// 存储所有的列表int** lists malloc(10 * sizeof(int*)); // 最多有10个列表int list_sizes[10] {0};int list_count 0;while (1) {char* line read_line();if (line[0] \n || line[0] \0) {free(line);break;}lists[list_count] parse_integers(line, list_sizes[list_count]);list_count;free(line);}// 初始化窗口矩阵为一维数组int* windows malloc(k * n * sizeof(int));int idx 0;int level 0;// 当窗口矩阵填满后结束循环while (idx k * n) {int flag 0;for (int i 0; i n; i) {windows[idx] lists[level][0];// 移除第一个元素for (int j 0; j list_sizes[level] - 1; j) {lists[level][j] lists[level][j 1];}list_sizes[level]--;// 如果当前列表没有元素了则继续切到下一个列表中借if (list_sizes[level] 0 list_count 1) {free(lists[level]); // 删除空列表for (int j level; j list_count - 1; j) {lists[j] lists[j 1];list_sizes[j] list_sizes[j 1];}list_count--;level % list_count; // 防止越界flag 1;}}// 如果没有发生借动作则切换到下一个列表if (!flag) {level (level 1) % list_count; // 防止越界}}// 构建输出for (int j 0; j n; j) {for (int i 0; i k; i) {printf(%d , windows[i * n j]);}}printf(\n);// 释放内存free(windows);for (int i 0; i list_count; i) {free(lists[i]);}free(lists);return 0; } 九、C算法源码 #include iostream #include vector #include queue #include sstream using namespace std;int main() {int n, k;cin n k;cin.ignore(); // 读取换行符vectorqueueint lists;string line;// 读取输入的所有列表while (getline(cin, line)) {if (line.empty()) break; // 本地测试时以空行作为输入截止条件istringstream iss(line);queueint q;int num;while (iss num) {q.push(num);}lists.push_back(q);}// 初始化窗口矩阵为一维数组vectorint windows(k * n);// 当前正在为窗口矩阵赋值的索引位置int idx 0;// 当前从第 level 个列表中取值int level 0;// 当窗口矩阵填满后结束循环while (idx windows.size()) {// 当前轮次是否发生了 下一篇华为OD机试真题 - 简易内存池Python/JS/C/C 2024 E卷 200分 本文收录于华为OD机试真题Python/JS/C/C 刷的越多抽中的概率越大私信哪吒备注华为OD加入华为OD刷题交流群每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景发现新题目随时更新全天CSDN在线答疑。
http://www.hkea.cn/news/14312441/

相关文章:

  • 虫点子创意设计公司seo企业网站源码
  • 怎么做网站宣传转入已备案网站
  • 公司网站表达的内容企业营销型网站设计
  • 平台型网站如何推广微网站怎么注册账号
  • 国家企业信用公示信息系统(安徽)医疗网站怎么做优化
  • cnzz网站建设百度广告投放
  • 网站主持人制作方法微信开发者工具教程实例
  • 音乐网站程序源码wordpress的cdn缓存
  • 如何做com的网站wordpress引用js插件
  • 软件定制一般价格百度seo快速排名
  • 网站建设证据保全广告设计是干嘛的
  • 济南住房与城乡建设局网站小规模公司自学做账
  • 深圳企业网站制作企业58同城黄页推广
  • 备案网站 cdn网站怎么添加js广告位
  • 广西建设教育网站网络营销方式分析与对比
  • 网站技术团队网页浏览器哪个好
  • 个人网站设计说明手机分销网站公司
  • 设计本网站是用什么做的官方小程序开发
  • 建设专业网站哪家技术好wordpress中文摘要
  • 建站哪个网站好网络培训心得体会5篇
  • 国际教育机构网站建设开发方案免费申请靓号
  • 衡阳退休职工做面膜网站sem和seo是什么职位
  • 建设银行无锡分行招聘网站wordpress快速发布
  • 建设银行嘉兴分行网站首页最好看免费观看高清视频了
  • 做网站怎么在图片上加文字购物网站建设实训心得体会
  • 湛江免费建站公司网站关键词优化费用
  • 垂直网站科技企业网站设计
  • 广告传媒建设网站中山网站建设哪家便宜
  • 网站方案组成要素重庆app定制
  • 电子商务公司网站怎么建如何制作网络教程