2020年专业408的算法题
文章目录
- 1 题目
- 2 解法一(朴素算法)
- 3 解法二
1 题目
定义三元组(a,b,c)(a,b,c均为整数)的距离D=∣a−b∣+∣b−c∣+∣c−a∣D=|a-b| + |b-c|+|c-a|D=∣a−b∣+∣b−c∣+∣c−a∣。给定3个非空整数集合S1,S2和S3,按升序分别存储在3个数组中。请设计一种尽可能高效的算法,计算并输出所有可能的三元组(a,b,c)(a∈S1,b∈S2,c∈S3a \in S1,b \in S2,c \in S3a∈S1,b∈S2,c∈S3)中的最小距离。
例如,S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41},则最小距离为2,相应的三元组为(9,10,9)。
2 解法一(朴素算法)
思路:
暴力求解所有可能
#include<cstdio>
#include<climits>
#include<cmath>
#include<string.h>
#include<iostream>int main(){//S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41}int S1[] = {-1,0,9};int S2[] = {-25, -10, 10, 11};int S3[] = {2, 9, 17, 30, 41};int res[3];//初始化memset(res, 0, sizeof(res));//计算长度int extent1 = sizeof(S1)/sizeof(*S1);int extent2 = sizeof(S2)/sizeof(*S2);int extent3 = sizeof(S3)/sizeof(*S3);//定义int最大值,用于向下比较int minLength = INT_MAX; for(int i = 0;i < extent1;i++){for(int j = 0;j < extent2;j++){for(int k = 0;k < extent3;k++){int tempLength = std::abs(S1[i] - S2[j]) + std::abs(S2[j]- S3[k]) + std::abs(S3[k] - S1[i]);if(tempLength < minLength){minLength = tempLength;res[0] = S1[i];res[1] = S2[j];res[2] = S3[k];}}}}for(auto i:res){std::cout<<i<<std::endl;}printf("MinLength is %d", minLength); return 0;
}
时间复杂度:O(extent1extent2extent3)
3 解法二
思路(摘自百度文档):
实现代码:
#include<cstdio>
#include<climits>
#include<cmath>
#include<string.h>
#include<iostream>#define xIsMin(x, y, z) (((x) <= (y)) && ((x) <= (z)))int main(){//S1={-1,0,9},S2={-25,-10,10,11},S3={2,9,17,30,41}int S1[] = {-1,0,9};int S2[] = {-25, -10, 10, 11};int S3[] = {2, 9, 17, 30, 41};int res[3];memset(res, 0, sizeof(res));int extent1 = sizeof(S1)/sizeof(*S1);int extent2 = sizeof(S2)/sizeof(*S2);int extent3 = sizeof(S3)/sizeof(*S3);int minLength = INT_MAX, dis;int i = 0, j = 0, k = 0; while(i < extent1 && j < extent2 && k < extent3 && minLength > 0){dis = std::abs(S1[i] - S2[j]) + std::abs(S2[j]- S3[k]) + std::abs(S3[k] - S1[i]);if(dis < minLength){minLength = dis;res[0] = S1[i];res[1] = S2[j];res[2] = S3[k];}if(xIsMin(S1[i],S2[j],S3[k])) i++;else if(xIsMin(S2[j],S3[k],S1[i])) j++;else k++;}for(auto i:res){std::cout<<i<<std::endl;}printf("MinLength is %d", minLength); return 0;
}
时间复杂度:O(extent1+ extent2+ extent3)
2020年专业408的算法题相关推荐
- 408计算机考研大纲 doc,2020计算机专业408基础综合考研大纲
研究生考试信息,欢迎访问北京研究生招生信息网. 考试大纲是我们每个考研的学生所强烈关注的,因为考试大纲里所公布的内容,是我们复习过程中必须掌握的.随着考研大军逐年壮大,竞争力越来越强.我们可以发现,虽 ...
- [考研408]数据结构算法题——快速排序模板
目的:速写明确,好改易懂 void QuickSort(int a[], int left, int right) {if (left >= right)return;int i = left, ...
- 搜狗2020秋招笔试的一道算法题
搜狗2020秋招的一道算法题 有A,B,C三种样品,凑齐三个样品各一个就可以领取一个奖品.任意两个样品可兑换另一种样品,如AA可兑换一个B或一个C,AB可兑换一个C.输入ABC,问最多可以领取多少奖品 ...
- 2023年考研计算机统考408计算机学科专业基础历年真题下载
2023年考研计算机统考<408计算机学科专业基础综合>题库[历年考研真题+章节题库+模拟试题] 武汉大学部分专业21年拟录数据(仅做参考) 零丁学习网整理 081601大地测量学与测量工 ...
- 考研计算机统考408计算机学科专业基础综合真题视频课程哪里有
考研计算机统考<408计算机学科专业基础综合>真题解析班(网授) 408计算机专业基础综合难度大吗? 零丁学习网整理 408的全称是"408计算机专业基础综合",是计算 ...
- 计算机专业英语自考真题,2020年4月自考《专业英语》真题及答案
距离2020年10月成人教育自学考试愈发临近,考生该如何高效复习?中国教育在线自考频道小编为各位考生整理了2020年4月自考<专业英语>真题及部分答案,考生可针对历年考试真题重要知识点强化 ...
- 字节跳动-2020秋招-笔试题剖析【5道算法题】
字节跳动-2020秋招-笔试题剖析[5道算法题],限时120分钟. 让我们一起来看看这些题吧! 题一:模型文件去重 [题目描述] 抖音上不同的用户类型我们有不同的用户模型文件. 我们有一个模型配置文件 ...
- 408最后计算机网络题库,2021考研计算机统考408专业基础综合题库
**部分为历年考研真题.提供2009-2018年考研真题及参考答案,其中2009-2015年每道真题均提供详细答案解析,通过对真题的演练和分析,可以帮助学员牢牢抓住计算机学科专业基础综合考试的命题特点 ...
- 2020烟草专业一战跨考复旦大学计算机专硕经验贴
2020烟草专业一战跨考复旦大学计算机专硕经验贴 前言: 复试结果已经出来了近两个礼拜,才想起写下这一年来的过程,当作自己人生的一个记录.其次,我感觉自己跨度算挺大的,应该对之后烤研的铁子们有所帮助. ...
- 2020杭电网安考研复试题+经验
2020杭电网安考研复试题+经验 个人感受 复试流程 上机笔试 考试形式 2018年编程题目 2019年编程题目 2020年 面试提问 提问内容 2018年 2019 2020复试经验 英语口语考核 ...
最新文章
- 安装 Fedora 22 后要做的事情
- administrator自动登录桌面
- zoj 3511 Cake Robbery(线段树)
- MFC Attach()函数和Detach()函数
- 前端学习(2894):列表组件的拆分和样式编写
- 贡献开源项目没那么简单,你要负责到底
- M斐波那契数列(HDU-4549)
- 【今日CS 视觉论文速览】14 Dec 2018
- 超经典实用APP UI产品界面设计模板
- python字符宽度_Python计算字符宽度的方法
- eltable 无数据文案修改_el-table的二次封装详细版(一)
- Atitit 人工智能目前的进展与未来 包含的技术 v2 r99.docx
- 3.3 DXC简介——HANA数据抽取和同步
- 华硕h410csm怎么开启_华硕主板怎么开启uefi模式?华硕主板BIOS开启uefi模式详细方法...
- oracle查看锁表语句、解锁方法
- 图像处理基础:特征金字塔
- 计算机无法读取智能卡,电脑智能卡读卡器驱动程序丢失怎么办?如何重新安装智能卡服务?...
- F. Clear the String (区间DP)
- 1077E Thematic Contests 【二分答案】
- 陕西二级分销系统开发适合做什么业务?
热门文章
- 计算机系统相机怎么卸载,如何卸载摄像头驱动
- 苹果自带的清理软件_系统自带垃圾清理软件屁用没有,但这款9.4评分的真心好用...
- 计算机和软件专业大学排名,全国计算机软件专业大学排名TOP20,清华居然不是第一!...
- Ordinal Regression with Multiple Output CNN for Age Estimation-(系列一_年龄估计)
- 谈一谈|《黑神话:悟空》实机演示观后感
- 计算机网络共享文件密码,如何给局域网共享文件夹设置访问密码
- 布局改变时的过场动画
- WPS-Word中换行符、回车符删除不掉怎么办?某一个空行删不掉
- c语言 字符串提取连续数字,c语言一串字符串中提取数字并相加的问题
- html中的embed标签属性,html中Embed标签的语法和属性设置