2015年10月11日,今天做美团数据开发工程师笔试题。其中最后两道编程题如下。
第一题:给X轴上n个点,这n个点可组成n*(n-1)/2条线段,求第k长的线段的长度。
参数
points: 点坐标数组,整形数组
n:点数量,整型
k: 整型
返回值
第k长线段:整形
实例参数:
points:[0,1,3,5]
n:4
k:5
示例返回:
2
解法:这个题目开始还怎么理解,返回k长线段,我的理解假设线段长度数组为:{1,3,5,2,2,2},则第1长的线段为5,第2长的线段为3,第3长的线段为2,第4长为 2,第五长也为2,第6长的我1。那么第k长的线段需要把n*(n-1)/2条线段从大小到小排序。取第线段长度数组第k-1个数即可。

#include<iostream>
using namespace std;
int solve(int *points, int n, int k) {int sumofline;int *lengthofline; //用来存取所有线段长度int i,j,x,l,m=0;sumofline = n*(n-1)/2; //总的线段数lengthofline = (int *)malloc(sizeof(int)*sumofline);//两重循环求取线段长度。for (i=0;i<n;++i){for(j=i+1;j<n;++j){lengthofline[m]=points[j]-points[i]; m++;}}//对线段长度排序,选择排序法排序从大到小排序,当对第k-1条线段排序时,即找到线段第k长线段。for(i=0;i<=m-1;i++){l=i;x=lengthofline[i];for(j=i+1;j<=m-1;j++){if(lengthofline[j]>x){l=j;}x=lengthofline[l];  }if(l!=i){lengthofline[l]=lengthofline[i];lengthofline[i]=x;}}if(i==k-1)return lengthofline[k-1];
}
int main(){int p[]={0,1,5,9};cout<<solve(p,4,5)<<" ";return 0;
}
第二道编程题:
给定一个整型数组,数组中存放的数字单调不减,及m<n,
a[m]<=a[n].
编写一个程序,输入一个数字,返回这个数字在数组中出现的中间位置。
参数
arr:单调不减整型数组
size:数组长度,整型
num:给定数字,整型
返回值
中间位置:整型
示例参数
arr:【1,2,2,2,3,7】
size :6
num: 2
(2 出现下标的位置为1,2,3,的位置)
示例返回值
2
提示
如果某个出现偶数次,比如n次,n为偶数,返回第n/2个下标。
如果输入的数字不存才,程序应该返回-1.解法:先用二分查找在数组找到这个数字出现位置,在分别设置两个指针,从中间往两边遍历数组,同时统计相同的数字出现次数。当出现次数大于1次,返回下标两个指针平均位置。当出现次数为1时,直接返回mid。当不出现数字时,返回-1.
#include<iostream>
using namespace std;
int locationOfNum(int *arr,int size,int num){int left = 0;int right = size-1;int mid;int i,j;int count = 0;while(left <= right){mid = left + (right - left) / 2;if (arr[mid] == num)break;else if (arr[mid] < num)left = mid + 1;elseright = mid -1;}if (left <= right){  i = mid;j = mid + 1;int flag =1;while (flag && (i >= left)){flag = 0;if (arr[i] == num){++count;--i;flag = 1;}}flag = 1;while (flag && (j <= right)){flag = 0;if (arr[j] == num){++count;++j;flag =1;}}if( count >1)return  (i + j ) / 2;if(count == 1)return mid;}return -1;
}int main(){int p[]={1,2,2,2,3,7};cout<<locationOfNum(p,6,2)<<" ";return 0;
}

2016年美团校园招聘数据开发工程师笔试编程题相关推荐

  1. 2016阿里巴巴校园招聘测试开发工程师笔试附加题(含部分答案)

    附加题-2016校招-测试开发工程师 1.一个英文句子,去掉空格和所有标点符号得到一个字符串.给定一个包含各种单词的字典,请编写程序,将该字符串用空格重新按单词分开(不考虑标点符号),并给出测试用例验 ...

  2. 七牛2018春季校园招聘后端开发工程师笔试经验

    笔试公司:上海七牛信息技术有限公司 笔试岗位:后端开发工程师 笔试时间:2018年4月14日14:00-15:30 笔试形式:牛客网在线做题 笔试回忆: 笔试共分为不定项选择和问答两部分,不定项选择1 ...

  3. 去哪儿2018春季校园招聘软件开发工程师笔试经验

    笔试公司:去哪儿网(Qunar.com) 笔试岗位:软件开发工程师 笔试时间:2018年4月2日15:00-17:00 笔试形式:赛码网在线做题 笔试回忆: 笔试共分为选择和编程两部分,选择题10道共 ...

  4. 金蝶软件校园招聘Java开发工程师笔试面试情况分享

    一.笔试 形式:(单选+多选+填空+简答) 考的内容主要为java基础(包括java运行机制.数据类型转换.运算符表达式求值.多线程.异常处理等).css.js.数据库SQL基础.软件工程.设计模式等 ...

  5. 今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解

    以前做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解.这一场的题目偏技巧和算法,而第三批的题偏编码.这一场涉及的算法有二分查找.区间动态规划. 原题链接:点这儿. 第 ...

  6. 今日头条2018校园招聘后端开发工程师(第四批)编程题 - 题解

    做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解和第二批的题目,今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解. 这一场题目还是挺好玩的,也挺有技巧 ...

  7. 中原银行java开发_2018中原银行校园招聘JAVA开发工程师公告

    省份不能为空 根据地区.银行订阅银行公告 银行出公告,及时通知到手机 选择省份 选择银行 公告一键订阅 × 接收订阅消息手机 发送 验证码: 确认 2018中原银行校园招聘JAVA开发工程师公告 来源 ...

  8. 今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解

    昨天做了下头条的后端开发工程师的编程题,这编码量大啊,两个小时,三个编程题,一个改错题,一个设计题,说实话,很考技术含量,而且编程题中有两个还特别考细心编码,如果两个小时能做三个题,确实非常不错了,写 ...

  9. 优酷土豆java面试_优酷土豆校园招聘Java开发类笔试题目

    先总体说下题型,共有20道选择题,4道简答题,3道编程题和1道扩展题,题目都比较简单,限时一小时完成, 一.选择题 选择题非常简单,都是基础题,什么死锁发生的条件.HashMap和HashSet查找插 ...

  10. 笔试 | 东方财富 2020 春季校园招聘后端开发在线笔试【Python】【C++】【字符串】【动态规划】

    东方财富 2020 春季校园招聘后端开发在线笔试[Python][C++][字符串][动态规划] 一.单选题 一共有 256 个结点的二叉树高度最小是多少:8. 读程题,选出正确的程序输出结果. 不记 ...

最新文章

  1. COALESCE语句解救sql的sum问题
  2. C语言杂谈:指针与数组 (上) (转)
  3. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建
  4. 霍金:人工智能或是人类历史上最后事件
  5. 《About Multi-Touch(多点触摸是个什么东西?)》:基于光学原理的多点触摸技术全解析...
  6. Linux删除重复内容命令uniq笔记
  7. 【小程序】【Tips】跨页面全局变量的正确方法 - globalData
  8. nginx学习文档之三 nginx常用命令
  9. 基于JAVA+Swing+MYSQL的超市管理系统
  10. zabbix监控哪些东西_监控系统选型,一篇全搞定
  11. matlab-罗曼诺夫斯基准则剔除粗大值
  12. Linux远程拷贝文件命令 - scp
  13. 异步请求(多种方式)
  14. 元宇宙中值得关注的7个前沿游戏,谁会是下一个Axie Infinity?
  15. wechat-0050,微信公众号,带参数的二维码获取与扫码事件推送
  16. 车载TBOX嵌入式设备软件的功能测试
  17. 原生JS实现图片跑马灯特效
  18. uNo面板L灯一直闪_智能互联办公照明系统调光芯片无频闪高辉度LED恒流【ic吧】...
  19. 【笔记】Linux 802.11n CSI Tool部分机翻
  20. 中国大学十大最烂专业

热门文章

  1. 网线传输速度测试_教你局域网中怎样对网线进行全面测试
  2. 南华大学计算机科学学院,南华大学计算机科学与技术学院介绍
  3. 学生用计算机中括号怎么打,大括号怎么打,教您word大括号怎么输入
  4. Python--快速爬取千张高清壁纸
  5. 出栈顺序判断问题——划线法
  6. 老树开新花,慧聪尚能饭否?
  7. 9 款最好的免费博客网站对比
  8. 英语esl语言课程等级105c,说一下英语ESL的等级
  9. linux系统网络老掉线,Linux使用ADSL上网时经常掉线
  10. matlab中plotyy设置曲线颜色,matlab plotyy 颜色