机试部分代码训练
CoffeeMore
这个作者很懒,什么都没留下…
展开
-
北京邮电大学机试学习笔记(三)排版题
解题思路:利用一个缓存数组老表示将要输出的字符阵列,规定阵列左上角字符坐标为(1,1),阵列右下角字符坐标为(n,n),并且从阵列的最内圈开始排列,直到最外圈。观察可知,最内圈左上角字符坐标为(n/2+1,n/2+1)次中间圈的左上角坐标为(n/2+1-1,n/2+1-1),以此类推。计算每圈长度可知中心圈长度为1,其次为3,以此加2类推。我们还需要明确每圈该使用哪个字符来填充,在coding时,...原创 2018-02-27 16:14:58 · 360 阅读 · 0 评论 -
北京邮电大学机试学习笔记(一)排序
机试中算法时间复杂度不能超过百万级别,即不能超过一千万。假设算法的时间复杂度为O(n^2),则n的取值不应大于3000,否则将会达到千万数量级复杂度,超出用时限制。例如不能在1s内对10000个整数进行冒泡排序,否则时间复杂度将会达到O(n^2)即100000000,而应该采用快速排序(O(nlog n)40000。空间复杂度则考虑为n*数组长度。 冒泡排序: 输入:n = 4...原创 2018-02-20 10:33:56 · 570 阅读 · 0 评论 -
北京邮电大学机试学习笔记(一)排序方法总结
转载 2018-02-20 10:44:43 · 325 阅读 · 0 评论 -
北京邮电大学机试学习笔记(二)日期类问题
计算日期之差时应考虑分别计算到原点日期的天数,再两两相减。读取连续八位数日期时使用%4d%2d%2d读取数字相对比较耗费内存的大数组应定义为全局变量,或者在函数中使用malloc函数动态申请变量空间例如:问题一:求两个日期相差天数输入:20141111 20141122输出:12编码如下: 问题二:确定输入日期为星期几输入: 9 October 2001 1...原创 2018-02-21 10:43:03 · 236 阅读 · 0 评论 -
北京邮电大学机试学习笔记(三)Hash的简单应用
预处理数据存储将存储位置与数据本身对应起来的存储手段就是Hash。例如,考虑统计输入学生成绩后,统计给出分数的人数,我们可以知道若分数最大值为100时,数组本身只有0到100这101中可能,我们可以将输入分数预先存入数组中,当需要查询时,再将目标分数依次与这些分数对比。如:输入:5 75 55 75 55 50 75 ...原创 2018-02-22 09:45:43 · 201 阅读 · 0 评论