自我介绍 也被称为“ 面试 第一问”,在自我介绍中,面试官可以借机考察应聘者的语言表达能力、应变能力,那么面试程序员自我介绍应该怎么说下面我为你带来程序员3分钟的自我介绍的内容,仅供参考。
程序员3分钟的自我介绍篇一
我叫___,广东广州人,硕士研究生,将于2010年6月 毕业 于南开大学,专业方向是 电路与系统,08年加入中国***,我的专业特长是计算机应用程序开发和网络通信。 我想从以下三个方面介绍自己。
学习方面,我的学习成绩优秀,本科GPA:867,研究生GPA:933,两次获得 校一等奖学金,并被免试保送到南开大学信息学院,我有较强的科研能力,目前正在参与一个国家自然科学基金项目:行波式微流泵的仿真与电路设计,担任项目组组长,负 责项目规划,任务分配和进度检查,目前正处于软件仿真阶段,通过仿真选择制作微流泵的最佳方案参数,设计新式的无阀压电行波式微流泵,为生化反应提供可控的微量样液。
另外还我还作为项目组成员,在08年参与国家大学生创新性实验计划:便携式无线体域网,主要负责手持终端PDA客户端程序开发,在07年参加国家自然科学基金项目: SPR多通道生物传感器,主要负责测控电路的C语言程序设计。
实践方面,在研究生阶段,我曾有两次实习经历。一次是09年暑假,在中南空 管局通信网络有限公司网络工程部,我协助工程师维护空管局的华为6503和思科3550主 干网,做好主干网的网络监控和数据备份,定期提交网络安全 报告 ,确保网络通畅和信 息安全,并给空管局用户提供 网络技术 支持服务。另一次是07年暑假,在广州共享网讯 科技有限公司运营部,我协助部门经理进行网站的推广,运营和客服工作,并从事网站美化设计的辅助工作。
学生工作方面,在以学习为主的同时,我也积极参加学校课余实践活动。曾担任过信息学院研究生会主席,信息学院团委副书记,学生职业发展协会实践部部长,多隆电子协会财务部长等职务,曾多次获得优秀学生干部和三好学生荣誉称号, 组织了包括:信息学院信息会客厅讲座、新生杯 足球 赛, 篮球 争霸赛, 乒乓球 友谊赛, 迎新晚会,联谊舞会,南开大学第一届模拟招聘大赛等大中型活动;还曾作为信息 学院 羽毛球 队的选手,协助院羽毛球队获得南开大学校长杯羽毛球团体赛亚军。这些活 动培养了我的领导组织协调能力,和团队协作的意识。我相信,这对我以后的工作也会 有很大的帮助。
最后,我想 总结 一下我的工作特点。第一是团队协作意识强,善于与人交流和沟通;第二是动手能力和学习能力突出;第三是做事稳健,态度认真,有一定的组织协调 能力;第四是考虑问题全面、仔细,做事有自己明确的想法和计划。我想在走上工作岗 位之后,我可以以最快的速度适应工作环境,不断挖掘自己的能力,完善自己,为企业 创造效益。我想加入__公司是因为我喜欢我的专业,也很看好__公司的未来发展,在这里我可以学以致用,这让我有很大的成就感和幸福感。同时我也很欣赏 __公司的 企业 文化 ,很喜欢__公司的工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。 我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。
程序员3分钟的自我介绍篇二大家好,我叫__,天津大学计算机应用专业硕士,2014年6月份毕业,研究方向__。我想从三个方面介绍自己:
1)学习方面。大三时保送研究生,之后进入实验室开展项目研究。在_年时间里,先后参与了_个项目,其中_个纵向项目,_个横向项目,纵向项目主要是关于__,横向项目主要是关于__。这些分别对应我简历里的项目经历(1,2,3)。我本科绩点38,研究生绩点34。我__年一次性通过大学英语四、六级考试,__年通过托业英语考试,考试成绩__分(满分__分),__年通过软件工程师/网络工程师/系统分析师考试。
2)实践方面。曾在软件公司实习了__年时间,曾在__当过计算机讲师,主讲__,另外,本科时曾参加过__比赛,并获得了__奖。实习期间,我的最大收获是:学校学习与工作知识的衔接,深切感悟将理论应用于实践的重要性和快乐。
3)社会工作方面。本科和研究生都担任所在班级班长/__部长,同时也在校学生会工作过。在担任班干部的日子里我具备了一定的组织、协调能力,并深深体会团队协作的重要性。
我的性格特点是,1性格沉稳,2考虑问题全面、仔细,3做事有自己明确的想法和计划。
我的优势是1自己全面的综合素质;2做事分清轻重缓急;3喜欢总结,避免犯同样的错误。
我的座右铭是:人因为梦想而伟大,机遇永远属于那些有准备、立即行动并能坚持到底的人!
我的职业生涯目标是,将来有一天能带领一个团队,做出亿万网民喜爱和尊敬的软件!做一个既懂技术,又懂业务的复合型人才(非IT企业用)。
我的未来5年的规划是:因为我本人是学计算机的,所以希望沿着以技术为主线的路走下去。5年以后,我希望自己能够对某一个领域有比较深入的理解,成为某一领域的专家,在某一方面能独挡一面,同时也能够了解其他领域的发展动态
程序员3分钟的自我介绍篇三考官好,我是计算机专业的面试者___,我此次应聘的职位是IT行业的软件工程师,这份工作不仅与我的专业对口,同时也是我的特长与兴趣所在。现在我就从以下三个方面介绍自己:
1)学习能力:我有较强的科研能力,能熟练的进行Windows2000和LINU_ *** 作,并能使用VB,DELPHI等语言编程。能运用网页三剑客Photoshop软件进行相关工作。
2)实践能力:我的专长是软件开发,我希望能从事这方面的工作 经验 ,并且我曾经发过多个系统,如人事档案管理系统,工资管理系统等等。
3)交际能力:我的性格沉稳,能坐得住,对IT行业的工作,具有非常好的适应能力,而且为人谦和,具有很强的组织和协调能力 ,富有的事业心和责任感使我能够面对任何困难和挑战。
从以上的简单自我介绍,我希望公司能给我一个展示自己能力的机会,让我我可以学以致用,同时我也很欣赏__公司的企业文化与工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。 我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。
>>>下一页更多精彩“程序员很经典的 面试题 ”
1 C++的类和C里面的struct有什么区别
struct成员默认访问权限为public,而class成员默认访问权限为private
2 析构函数和虚函数的用法和作用
析构函数是在对象生存期结束时自动调用的函数,用来释放在构造函数分配的内存。
虚函数是指被关键字virtual说明的函数,作用是使用C++语言的多态特性
3 全局变量和局部变量有什么区别是怎么实现的 *** 作系统和编译器是怎么知道的
1) 全局变量的作用用这个程序块,而局部变量作用于当前函数
2) 前者在内存中分配在全局数据区,后者分配在栈区
3) 生命周期不同:全局变量随主程序创建和创建,随主程序销毁而销毁,局部变量在局部函数内部,甚至局部循环体等内部存在,退出就不存在
4) 使用方式不同:通过声明后全局变量程序的各个部分都可以用到,局部变量只能在局部使用
4 有N个大小不等的自然数(1–N),请将它们由小到大排序要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
void sort(int e[], int n)
{
int i;
int t;
for (i=1; i {
t = e[e[i]];
e[e[i]] = e[i];
e[i] = t;
}
}
5 堆与栈的去区别
A 申请方式不同
Stack由系统自动分配,而heap需要程序员自己申请,并指明大小。
B 申请后系统的响应不同
Stack:只要栈的剩余空间大于申请空间,系统就为程序提供内存,否则将抛出栈溢出异常
Heap:当系统收到程序申请时,先遍历 *** 作系统中记录空闲内存地址的链表,寻找第一个大于所申请空间的堆结点,然后将该结点从空间结点链表中删 除,并将该结点的空间分配给程序。另外,大多数系统还会在这块内存空间中的首地址处记录本次分配的大小,以便于delete语句正确释放空间。而且,由于 找到的堆结点的大小不一定正好等于申请的大小,系统会自动将多余的那部分重新放入空闲链表。
C 申请大小限制的不同
Stack:在windows下,栈的大小是2M(也可能是1M它是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。
Heap:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。
D 申请效率的比较:
栈由系统自动分配,速度较快。但程序员是无法控制的。
堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。
另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。
E 堆和栈中的存储内容
栈:在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器 中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开 始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。
堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。
6 含参数的宏与函数的优缺点
宏: 优点:在预处理阶段完成,不占用编译时间,同时,省去了函数调用的开销,运行效率高
缺点:不进行类型检查,多次宏替换会导致代码体积变大,而且由于宏本质上是字符串替换,故可能会由于一些参数的副作用导致得出错误的结果。
函数: 优点:没有带参数宏可能导致的副作用,进行类型检查,计算的正确性更有保证。
缺点:函数调用需要参数、返回地址等的入栈、出栈开销,效率没有带参数宏高
PS:宏与内联函数的区别
内联函数和宏都是在程序出现的地方展开,内联函数不是通过函数调用实现的,是在调用该函数的程序处将它展开(在编译期间完成的);宏同样是;
不同的是:内联函数可以在编译期间完成诸如类型检测,语句是否正确等编译功能;宏就不具有这样的功能,而且宏展开的时间和内联函数也是不同的(在运行期间展开)
7 Windows程序的入口是哪里写出Windows消息机制的流程
Windows程序的入口是WinMain()函数。
Windows应用程序消息处理机制:
A *** 作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中
B 应用程序在消息循环中调用GetMessage函数从消息队列中取出一条一条的消息,取出消息后,应用程序可以对消息进行一些预处理。
C 应用程序调用DispatchMessage,将消息回传给 *** 作系统。
D 系统利用WNDCLASS结构体的lpfnWndProc成员保存的窗口过程函数的指针调用窗口过程,对消息进行处理。
8 如何定义和实现一个类的成员函数为回调函数
A什么是回调函数
简而言之,回调函数就是被调用者回头调用调用者的函数。
使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个被调用函数。而该被调用函数在需要的时候,利用传递的地址调用回调函数。
回调函数,就是由你自己写的,你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。
B如何定义和实现一个类的成员函数为回调函数
要定义和实现一个类的成员函数为回调函数需要做三件事:
a声明;
b定义;
c设置触发条件,就是在你的函数中把你的回调函数名作为一个参数,以便系统调用
如:
一、声明回调函数类型
typedef void (FunPtr)(void);
二、定义回调函数
class A
{
public:
A();
static void callBackFun(void) //回调函数,必须声明为static
{
cout<<"callBackFun"<
}
virtual ~A();
};
三、设置触发条件
void Funtype(FunPtr p)
{
p();
}
void main(void)
{
Funtype(A::callBackFun);
}
C 回调函数与API函数
回调和API非常接近,他们的共性都是跨层调用的函数。但区别是API是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反, 他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的API,安装后低层不知道这个回调的名字,但它 通过一个函数指针来保存这个回调函数,在需要调用时,只需引用这个函数指针和相关的参数指针。
其实:回调就是该函数写在高层,低层通过一个函数指针保存这个函数,在某个事件的触发下,低层通过该函数指针调用高层那个函数。
一、两张表 city表和province表。分别为城市与省份的关系表。
表名:city
id City Provinceid
1 广州 1
2 深圳 1
3 惠州 1
4 长沙 2
5 武汉 3
……… 广州
表名称:province:
id Province
1 广东
2 湖南
3 湖北
………
1、写一条sql语句关系两个表,实现:显示城市的基本信息。显示字段:城市id ,城市名, 所属省份 。
如:
Id(城市id) Cityname(城市名) Privence(所属省份)
2、如果要统计每个省份有多少个城市,请用group by 查询出来。显示字段:省份id ,省份名,包含多少个城市。
二、主键 和外键表示什么?一般用于做什么?
主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。
外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。A为基本表,B为信息表。
在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份z号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份z号一样,必须是每个记录的值都不同,这才能根据
主键的值来确定不同的记录。
关系:外键一定是另外某个表的主键。
三、select now(),Date_ADD(now(),INTERVAL 14 day),Date_SUB(now(),INTERVAL 3 Day) from table; 会获得什么内容,请写出来。
会获得三条数据:
第一条:当前时间;
第二条:当前时间加上14天;
第三条:当前时间减去3天。
四、您所知道的MYSQL 数据库备份,还原方式有哪几种?
备份:
一,搭建主从架构,master-slave,通过binlog文件同步复制主库的数据,也可以直接通过binlog文件恢复数据。
二,通过系统计划任务执行mysqldump做周期性全备份。
三,物理备份,直接拷贝数据文件、参数文件、日志文件。
还原:
一.通过mysql *** 作工具,如phpmyadmin,sqlyog等导入备份过的数据库文件。
二.将物理备份的文件拷贝到mysql的data目录下
五、内容管理系统中,表message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
创建上表,写出MySQL语句
六、同样上述内容管理系统:表comment记录用户回复内容,字段如下
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示0
七、内容管理系统,表category保存分类信息,字段如下
category_id int(4) not null auto_increment;
category_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
八、PHP文件 *** 作
1、内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路
2、简单描述用户修改发布内容的实现流程和基本思路
1)当用户提交后生成一个由url地址MD5后的文件的编译页面,用文件处理file函数生成一个模板合成页,判断模板编译页是否有,模板页无或者编译页的创建时间戳小于模板页的修改时间都会从新生成编译页面,编译后的页面会调用对应数据库的值显示在页面中,通过对内存数据的读取释放,显示出我们看到的静态数据,然后用file文件将其保存起来生成静态的页面
2)当用户修改了发布内容都会修改数据相关的内容,并通过编译页面更新静态数据并用文件的方式缓存起来,当用户查看时将不做任何数据库查找,直接调用该缓存文件即可
面试是每个普通程序员面前的一座大山,给了大家无尽的苦恼和困惑。程序员面试很难吗?难!正常的,要经过两轮技术面试以及一轮经理面试,也有不少顶尖公司甚至需要三到五轮的技术面试。
几轮面试下来,能熬到最后,这绝对是真正意义上的“过五关斩六将”了。很多优秀的程序员业务能力很过硬,但都因为在面试的时候发挥失常,从而屡屡与大厂失之交臂。所以,每一个面试成功者,都算是勇士。要给自己点个赞!
那么面试时,我们究竟需要注意什么呢?今天,北大青鸟就教给大家几个面试成功的技巧。
1、首先,要确保你理解了面试官的问题。
许多问题都是故意措辞模糊或者模棱两可,这个时候你可以请面试官把问题说清楚,从而确保你真正回答面试官的问题。你的提问同时还有一个好处,就是它能给你自己一些时间,让你的脑子转起来。
2、用一到两个例子来确定问题的限制条件和要求(在现场面试时在白板上完成这个过程,在电话面试时在笔记本上完成)。
尝试用中等规模的例子,以便覆盖到一些特殊情况。如果你能想到可能相关的表格,就把它画出来。事实上,把你想到的任何东西都写下来是会有帮助的,因为它能为你提供一个视觉锚点,从而让你在走不通时或者思考过程中随时返回某一个点。
3、把话说清楚,这可能是最重要的一步。
要试着让面试尽可能有更多的互动,面试官不知道你在想什么,而让他们参与到你的思考过程里,会让她给你一些有用的提示,防止你偏向错误的方向。你的目标就是要先和面试官确证你的答案,然后再去写代码,而且你考虑答案越清晰、越高效,你得到的即时反馈也就越好。
4、通过应用以下技巧来找到答案
回想一下你遇到的类似问题,再想想它们是如何被解决的,尝试各种不同的算法(分治算法、贪心算法、递归、排序,等等),把问题分解成更小的、可处理的小问题(这样你就能得到相应部分的分数),最后再通览一遍你列出的数据结构,因为有时候,只要想到了正确的数据结构,就能给出正确的答案。
5、当你向面试官问清楚了问题、并向她解释了你的答案之后,就可以开始写代码了。
在共享文档里写代码的时候,你可以复制粘贴、写评论,而且能回过头来完成骨架算法和功能。但在白板上写代码就不一样了,它需要你的头脑很清醒,而且需要你具备管理白板空间的技能。
《程序员面试逻辑题解析》(萨沙)电子书网盘下载免费在线阅读
ed3s
书名:程序员面试逻辑题解析
作者:萨沙
译者:朱学武
豆瓣评分:75
出版社:人民邮电出版社
出版年份:2013-1
页数:208
内容简介:
《程序员面试逻辑题解析》共分为3个部分。第一部分从有趣且锻炼头脑的谜题入手,继而给出解题思路和详细答案,更有“热身问题”给大家提供充分的思考空间。第二部分综合了不同类型的谜题,如数独、调度问题及概率题等。神秘的第三部分带领大家不断历险,开动脑筋,解决大量密码及银行账户等方面的问题。几十道简洁的小谜题不仅充分锻炼了我们的思维方式,更为提高面试成功率奠定了基础。《程序员面试逻辑题解析》不仅适合程序员阅读,更是谜题爱好者的饕餮盛宴。
作者简介:
Dennis E Shasha
纽约大学柯朗数学研究所计算机科学教授,先后获得耶鲁大学理学学士、雪城大学理学硕士和哈佛大学哲学博士学位。《科学美国人》网站和Dr Dobb’s Journal的谜题专栏作家。除本书外,还著有《奇思妙想:15位计算机天才及其重大发现》、Database Tuning: A Principled Approach、The Puzzling Adventures of Dr Ecco、Natural Computing: DNA, Quantum Bits, and the Future of Smart Machines 和Codes, Puzzles, and Conspiracy等书。
大家在面试的时候,难免会遇到让人摸不着头脑的逻辑题,这类题目让同学们往往连答案应该回答些什么都摸不清楚,只能和面试官四目相对,非常尴尬。
其实,很多面试的考官,都是从题库随机挑选逻辑题来考验同学们,面试官有时候自己也未必完全摸透这类题目,所以面试的时候不必过于紧张,就算答不出来啊也非常正常。
在我的理解中,这类题目主要还是考大家的思路,至于答案标准与否,其实不是特别重要。
本文总结了面试中我自己面试中遇到的几道非常常见的逻辑题,大家可以作为面试前的突击复习材料。
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
三个人
若是两个人,设A、B是黑帽子,第二次关灯就会有人打耳光。原因是A看到B第一次没打耳光,就知道B也一定看到了有带黑帽子的人,可A除了知道B带黑帽子外,其他人都是白帽子,就可推出他自己是带黑帽子的人!同理B也是这么想的,这样第二次熄灯会有两个耳光的声音。
如果是三个人,A,B,C。A第一次没打耳光,因为他看到B,C都是带黑帽子的;而且假设自己带的是白帽子,这样只有BC戴的是黑帽子;按照只有两个人带黑帽子的推论,第二次应该有人打耳光;可第二次却没有于是他知道B和C一定看到了除BC之外的其他人带了黑帽子,于是他知道BC看到的那个人一定是他,所以第三次有三个人打了自己一个耳光
N个人是黑帽子,就会在第N天,有N个人打自己一个耳光。
一个是两种药片,每种有两个,一个人需要早上吃两种药片各一个,现在这四个药片混在一起了这个人什么方法吃。
把所有的4颗药丸都切开成相等的两半,然后早上和晚上,分别吃掉每颗药丸的一半
一个5L,一个6L的瓶子,要得到3L的水,问什么方法
6-5=1 1L水放在5L那个瓶里面,然后再装6L水,往5L(里面已经有1L)里面倒,这样就会剩下2L水在6L里面,再把2L水放在5L里面,再装一次,不就可以6L那里到处3L水到5L里面,自己就剩下3L了
一共1000瓶酒,其中一瓶有毒。如果一只老鼠喝了有毒的酒,会在一天之后死亡,那么如果给你一天时间,然你判定哪瓶酒有毒,至少需要几只老鼠?
答案是10只。这个需要使用二进制编码来解决,1000瓶酒至少需要10位二进制数来进行编码。然后取十只杯子分别代表这是个二进制数的十个位,分别将1000瓶酒倒入其编码为1的对应的杯子中。取十个老鼠分别喝十个杯子中的酒,一天之后,就可以根据喝哪些杯子的老鼠死掉来确定出有毒的那瓶酒的编码,从而确定哪瓶酒有毒。其根据就是只有有毒酒的编码对应的毒死老鼠的杯子位置。这个题目就是利用了二进制编码的一些特性。
还有一些其他的题目也使用这些特性,比如使用特殊的位运算,一般使用比较多的位运算就是与、或和异或。
这样,就可以对应到现实生活中的一些为题,比如一个类似的问题原本我们想需要用900多台服务器来解决,经过这样分析后就可以使用10台服务器来解决,大大节约了成本。
再比如,国王有10000桶酒,已知一桶酒有毒,喝了之后一定会在23-24小时内死亡(例如0点喝,会在23-第二天0点这个时间段死亡)。现在国王要在48小时后举办一个宴会,需要用罪犯实验,请问最少几个罪犯。(可以混合酒)
如果是常规利用二进制解题的话,那就需要14个犯人,2^14=16384>10000,但是这样一来死亡时间这个条件就用不到,也不是最优解。
应该利用酒死的时间是固定的,一个罪犯像上面那样可以表示成25种状态,三个罪犯就可以表示25 x 25 x25种状态,超过10000了,所以只需要三个罪犯。
有8个小球,其中七个的重量是相同的,有一个较轻。给你一个天平,问秤几次能找出那个较轻的小球,若天平只能秤两次,又该怎么秤
第一次两边各放随机三个,如果平了,则另外一个是轻的,若不平,还有第二次,拿出那三个轻的,在两边随机放一个,就能测出哪个最轻了。
本体图解参考:
>
以上就是关于程序员3分钟的自我介绍范文_2017程序员面试介绍描述全部的内容,包括:程序员3分钟的自我介绍范文_2017程序员面试介绍描述、c++经典面试题及答案、程序员面试必备PHP基础面试题 – 第十一天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)