Google研发面试题
今天很开心找到了一个很不错的研发面试题,很考验临时反应能力,特地拿出来和大家分享一下此题以及自己做该题的心得体会!!!
题目:
总共有12个外表都一样的金属球,其中有11个球的重量是相同的,1个球的重量可能比其他11个球要重,也可能比较其他11个球轻,这个球称之为异常球,问:如何利用一个天平来称重三次找出这个异常球?
下面来讲解我的思路,希望大家拿出笔和纸。
首先我们将12个球分为三份,将球依次排好序号为1-12,如下:
A组选手:1,2,3,4 B组选手:5,6,7,8 C组选手:9,10,11,12
任意拿出两组放在天平两边,下面我们就以拿出A,B比较。
【1】如果A == B,因为只有1个异常球,而A == B,则说明C组(9,10,11,12)异常球:
紧接着从C组(异常组中)取出3个球,从正常组A或者B组中也取出3个球来进行比较,例如我们取出B组6,7,8【左边】 vs C组9,10,11 【右边】
如果天平平衡,则C组剩下的球就为异常球,这样就比较2次;
如果天平不平衡,那就知道了异常球是重还是轻,
那就从右边的三个球中再任取两个,放入天平中:
如果天平平衡,剩下的球即为异常球;这样就比较2次
如果不平衡,则可根据上面已经得出的结论:异常球是重还是轻的结论判断哪一个是异常球,这样比较3次
【2】如果A != B,因为只有1个异常球,则说明C组为标准球,异常球在A组或者B组中
此时要分两种情况来分析:
(1)左侧重右侧轻即1,2,3,4 > 5,6,7,8;(2)左侧轻右侧重即1,2,3,4 < 5,6,7,8
========》
(1)左侧重右侧轻即1,2,3,4 > 5,6,7,8 【异常球可能是1,2,3,4重,或者5,6,7,8轻】
然后我们比较,,9,10,11 ------>(9,10,11是正常球标准球)
如果平衡,就可以说明,, 是标准球,结合上一个比较结果,可以得出的是异常球为2,3,4且为重球,这样从2,3,4里面找两个球比对一下即可,这样就比较3次;
如果不平衡:
左侧重:则1为异常重球,这样就比较2次
左侧轻:异常球是6,7,8且为轻球,从三个球中选出两个再次称一次选择轻的即可,这样就比较3次
(2)左侧轻右侧重即1,2,3,4 < 5,6,7,8 解法同上面差不多,这个留给大家思考(思路一样,比较简单)
上面就是关于这个题目,我的思路和解法,欢迎大家指正!!!写完正好凌晨一点钟,晚上喽!
Google研发面试题的更多相关文章
- google的面试题(三维动态规划的范例)——(87)Scramble String
转:http://www.cnblogs.com/easonliu/p/3696135.html 分析:这个问题是google的面试题.由于一个字符串有很多种二叉表示法,貌似很难判断两个字符串是否可以 ...
- 备战金九银十,Java研发面试题(Spring、MySQL、JVM、Mybatis、Redis、Tomcat)[带答案],刷起来!
八月在即,马上就是"金九银十",又是跳槽招聘季.咱们这行公认涨薪不如跳槽加的快.但不建议频繁跳槽,还是要学会融合团队,抓住每个机会提升技能. 苏先生在这里给大家整理了一套各大互联网 ...
- 一道google的面试题(据说)
1. 原题(同事给的) Max Howell 参加了谷歌的面试,出题人竟然要求 Max Howell 在白板上作出解答,Max Howell 当然愤怒地拒绝了,回家以后马上在微博上跟我们分享他的吐槽: ...
- Linux后台研发面试题
本系列给出了在复习过程中一些C++后台相关面试题,回答内容按照笔者的知识点掌握,故有些问题回答较为简略 1.信号的生命周期 一个完整的信号生命周期可以用四个事件刻画:1)信号诞生:2)信号在进程中注册 ...
- 蘑菇街2015校招 Java研发笔试题 详解
1. 对进程和线程描述正确的是( ) A. 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间. B. 改变进程里面主线程的状态会影响其他线程的行为,改变父进程的状态不会影 ...
- Google 2013笔试题一
2.1 给定三个整数a,b,c,实现 int median(int a, int b, int c),返回三个数的中位数,不可使用sort,要求整数操作(比较,位运算,加减乘除等)次数尽量少,并分析说 ...
- 笔试真题解析 ALBB-2015 系统project师研发笔试题
4)在小端序的机器中,假设 union X { int x; char y[4]; }; 假设 X a; a.x=0x11223344;//16进制 则:() y[0]=11 y[1] ...
- JAVA研发面试题
转自:http://www.jianshu.com/p/1f1d3193d9e3 Java基础的知识点推荐<Java编程思想>,JVM的推荐<深入理解Java虚拟机>,Spri ...
- Google 面试题和详解
Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道.这个话题已经探讨过很多次,而科技博客 BusinessInsider这两天先是贴出15道Google面试题并一一给出了答案,其中不 ...
随机推荐
- Hessian 接口使用示例总结(转载)
一.使用hessian接口准备 首先,hessian接口的使用,必须要准备hessian接口的jar包,本文使用的jar包如下:hessian-4.0.7.jar; Hessian接口的使用一般是在两 ...
- 12 (OC)* AFNetworking
AFNetworking主要是对NSURLSession和NSURLConnection(iOS9.0废弃)的封装,其中主要有以下类:1). AFHTTPRequestOperationManager ...
- Java线程池Executor&ThreadPool
java自1.5版本之后,提供线程池,供开发人员快捷方便的创建自己的多线程任务.下面简单的线程池的方法及说明. 1.Executor 线程池的顶级接口.定义了方法execute(Runnable),该 ...
- PHP5.6版本在Windows上安装redis扩展
PHP使用redis扩展 一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择 ...
- 接口测试时数据格式是json,如何将响应内容转换为字典解析
import requests url = 'http://127.0.0.1:5050/index' def apiTestPost(url): datas = { 'a':'cisco3', 'b ...
- npm install 时间很长解决方案
国外镜像站很慢,所以我们可以更换为国内的镜像站 首先可以get命令查看registry npm congfig get registry 如果你没有变更果regustry你的结果应该会是这样的 也就是 ...
- WPS删除多余空白页
WPS删除多余空白页 在实际工作中,我们在操作WPS文字的时候常常会遇到一种问题,就是当在文字占满整页的时候,文档常常会多出一页空白页的现象.如图1 图 1 对于WPS文字怎么删除空白页这个问题, ...
- C# 时间戳的相关操作
一般的 时间戳 格式分为两种 即 10位(秒)时间戳 与 13位(毫秒)时间戳 时间戳 类型也分为两种 即 本地时间戳 与 世界统一(UTC)时间戳 废话不多说,直接上代码: 一.时间戳获取方法 // ...
- 【ADO.NET基础-GridView】GridView的编辑、更新、取消、删除以及相关基础操作代码
代码都是基础操作,后续功能还会更新,如有问题欢迎提出和提问....... 前台代码: <asp:GridView ID=" OnRowDataBound="GridView1 ...
- JS实现数组排序的方法
前言 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,当然排序也是算法中的一种,javascript内置的sort函数是多种排序算法的集合,数组在原数组上进 ...