京东2015校园招聘技术类笔试题及答案
1、给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:” i am a little boy. “,变成”i am a little boy”,语言不限,但不要用伪代码作答,函数输入输出请参考如下的函数原型:
C++函数原型:
void FormatString(char str[],int len){
}
#include "stdafx.h"
#include <string.h>
void FormatString(char str[],int len){int i = 0;int j = 0;if(len>0){
while (str[i] != '\0'){if(str[i] ==' '){++i;str[j] = str[i];}else{if(str[i-1] ==' '){++j;}
++i;str[j] = str[i];++j;
}}
str[j]='\0';
}
}int _tmain(int argc, _TCHAR* argv[])
{
char a[] = " i am a little boy. ";int b = strlen(a);FormatString(a,b);printf("%d\n",strlen(a));printf("%s\n",a);
return 0;
}
2、给定一颗二叉树,以及其中的两个node(地址均非空),要求给出这两个node的一个公共父节点,使得这个父节点与两个节点的路径之和最小,描述你程序的最坏时间复杂度,并实现具体函数,函数输入输出请参考如下的函数原型:C++ 函数原型:struct TreeNode {TreeNode* left;//指向左子树TreeNode* right;//指向右子树TreeNode* father;//指向父亲节点};TreeNode* LowestCommonAncestor(TreeNode* first, TreeNode* second) {}
int getHeight(TreeNode *node) { //这一段是为了确定当前节点的高度,一直查找父节点,节点存在+1,直到根int height = 0; while (node) { height++; node = node->parent; } return height;
} TreeNode* LowestCommonAncestor(TreeNode* first,TreeNode* second) { int height1 = getHeight(first), height2 = getHeight(second), diff = height1 - height2;//找到高度差if (diff < 0) { diff = -diff; while(diff--) { second = second->parent; } } else { while(diff--) { first = first->parent; } } //上边的的if就是为了找到同一高度的父节点while (first != second) {//同步遍历,两个节点同时找父节点每次上升一层,相同时即找到父节点 first = first->parent; second = second->parent; } return first;
}
算法 复杂度为O(n)。
第二道题的答案引用,刚开始没看懂,对原文稍加修改添加了一些注释,原文中还提及一种方法有兴趣可以一看http://blog.csdn.net/qianhen123/article/details/46778269
3、有n枚硬币按照0到n-1对它们进行编号,其中编号为i的硬币面额为Vi。两个人轮流从剩下硬币中取出一枚硬币归自己所有,但每次取硬币的时候只能取剩下的硬币中编号最小的硬币或者编号最大的硬币,在两个都采用最优策略的情况下,作为先手取硬币的你请编写程序计算出你能获得硬币总面额的最大值? (请简述算法原理,时间复杂度并实现具体的程序),语言不限。int MaxValue(int V[], int n) {}
#include "StdAfx.h"int MaxValue(int V[], int n)
{int i = 0;int j = n-1;int win=0;while (i<j){if(V[j] >= V[i]){win += V[j];j--;if(V[j]>=V[i])j--;elsei++;}else{ win += V[i];i++;if(V[j]>=V[i])j--;elsei++;}}if(i==j)win +=V[i];return win;
}int _tmain(int argc, _TCHAR* argv[])
{int V[]={8,3,1,5,7,1,4,0,9,2,6};int k = sizeof(V)/sizeof(V[0]);int M = MaxValue(V,k);printf("%d\n",M);printf("%d\n",V);return 0;
}
在做这道编程题的时候想了到了另一种可能,存在全局最优的情况,而我这个算的是局部最优情况
比如说20,999,5,1 如果数组中存在这种情况,起手拿1就会拿到999,这才是全局最优
留着,等后续优化这种情况
京东2015校园招聘技术类笔试题及答案相关推荐
- 京东2015校园招聘技术类笔试题(笔试时间:2014-10-18)
笔试时间:2014-10-18 笔试城市:深圳.广州等 笔试职位:技术类(包含各种职位) 答案: 一.1. A:HTTP协议是无状态的 http协议是无状态的,同一个client的这次请求和上次请求是 ...
- 京东2015校园招聘技术类笔试题
给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个.例如:" i am a little boy. ", ...
- 2014 360校园招聘技术类笔试题
接下来的面试题传送门: 2014 360校园招聘技术类面试题 选择题 小毕最近电脑很慢,怀疑是中了病毒,于是找了三款杀毒软件扫描了一下: A软件扫描结果:如果中了病毒X,那么也可能中了病毒Y B软件扫 ...
- 京东2013校园招聘软件研发笔试题
时间:2012-9-11 地点:川大 我只能说第一家公司,不是一般的火爆.不得不吐槽一下: 京东宣讲完全没有计划,只看到个下午两点半宣讲,结果跑过去,下午两点是宣讲管培的.在川大外的德克士呆了一下午. ...
- 去哪儿网2015校园招聘前端笔试题
原文链接:http://www.dy1280.com/thread-601-1-1.html 我应聘的是前端工程师.笔试就考了四道前端题,个人觉得基础倒是考到了,但是前端方面的知识没有多大联系,四道题 ...
- 奇虎360 -- 2013年校园招聘技术类笔试题
照片稍微有点模糊,但仔细看还是能看清楚的! 强烈推荐!!!
- 腾讯2013校园招聘技术类笔试题(高清完整版)
很给力的资源,超清晰,与大家共同分享!
- 爱奇艺2015校园招聘产品笔试题
原文链接:http://www.dy1280.com/thread-703-1-1.html 一.解释以下名词: 蝴蝶效应 破窗效应 马斯洛需求层次 墨菲定律 囚徒困境 LBS 冰桶挑战 二.介绍你最 ...
- 中体骏彩2015校园招聘 研发笔试题
目录[-] 业务题: 选择题 问答题 1. 简述HTTP协议中Post和Get的区别 2. 写出表示手机号的正则表达式(1开头的11位数字) 3. Heap与Stack的区别 4. A线程在无限循环一 ...
最新文章
- linux 查看 文档 不显示注释 命令
- SAP HUM 如何查询一个HU号码是否被软分配给了某个销售订单 ?
- clion浏览linux代码,手把手教你使用 Clion 开发 Linux C++ 项目
- android byte[] 转string 好多问号_java程序员面试遇到string题如何不凉?
- 在VB 中调用动态连接库
- python实现编译器连接器_Python连接器
- CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
- php实现服务器文件同步,PHPstorm配置同步服务器文件
- 矩阵乘法(信息学奥赛一本通-T1125)
- 手势密码 图形解锁 实现
- Macbook Pro touch bar 设置小tips
- 计算机不能上网查找原因的步骤,电脑能连接上wifi但不能上网的原因_电脑能连接上wifi但不能上网的解决方法...
- Android音频剪辑裁剪自定义view
- dcs常用的冗余方式_DCS系统冗余技术讲解
- Steven N.S.Cheung之婚姻合约文章简评
- android 自动亮屏解锁,android锁屏唤醒并解锁屏幕实现方法
- LeetCode311 稀疏矩阵的乘法
- RetinaNet模型在DDSM数据集的应用问题(2)
- 【快速幂入门】自由弹簧
- 【技巧】EXCEL如何按行找出最大三个数并标记
热门文章
- linux网桥的简单理解和配置
- 003 愚人节的“礼物”
- win7系统共享看不到别的计算机呢,系统之家win7系统在同一个工作组看不到其他电脑的解决方法...
- bbedit php,BBEdit for Mac(最好用的HTML文本编辑器)
- edpluse怎么运行c语言,使用EditPlus的一些小技巧
- 电子工程师必备:运算放大器11种经典电路
- 【深度学习】YOLOv7速度精度超越其他变体,大神AB发推,网友:还得是你!|开源...
- You may need to configure your browser or application to trust the Charles Root Certificate. See SSL
- java课题背景,办公自动化系统论文-课题研究的背景和意义及国内外发展状况.doc...
- vue 使用Computed实现数据的动态计算