大厂面试常见智力题

article/2025/10/3 23:18:59

1. 64匹马,8个赛道,找出前4名最少比赛多少场?

这是一道经常考的智力题

64匹马,我们要想知道哪匹🐎跑的最快,前提条件是每一匹🐎都要去比赛一场。所以刚开始的赛马规则是每匹马都要进行一次比赛。

步骤1: 把 64匹🐎 8 个 8个分成一组,所以可以分成8组🐎(因为这是8个赛道所以8个8个分组)。然后进行每组的比赛,得到每一组内的排名。

步骤2: 由上一步我们可以知道每一组内的排名,来看看我们的要求, 找出前4名,所以我们可以排除每一组的最后4名,因为最后4名不可能属于前4名。这个时候还剩下 64 - 8 *4 =32匹🐎可以选择

步骤3:经过步骤2的筛选,还剩下32匹🐎,这个时候不做比赛 每一批都有可能是前4名,所以这个时候我们挑选出 8组中各自上一轮比赛的第一名进行比赛。在这次第一名的比赛中可以得到前4名和后4名,根据题目要求,我们可以排出后四名(假设这后四名为 一个group a),同时也可以排出这后四名对应的另外4 * 3 = 12匹马,这是因为这被排除的12匹🐎是第一名比赛那一轮被排除的四匹马(a)后面的12匹🐎,(最快的都没戏了,比最快慢点也没戏)。然后剩下32 - 16 = 16 匹马

步骤4:现在,经过上一轮的排查,还剩下16匹🐎,其中我们知道上一轮有4匹最快的🐎的排名以及每匹马各自小组内的组内排名(这个是在步骤一中比较出来的),由此我们可以确定这4匹最快马中,最慢的那一匹马的组内3个小伙伴马肯定可以被排除,因为如果 这匹最慢的马属于题目要求的话,那么前面那3匹比他快的马肯定是候选名额。同时可以排出倒数第二快马的组内的最后2匹马,原因和刚刚解释的一样,顺便排出倒数第三快那匹马的最慢小组成员,原因也和刚刚解释的一样。排除后,剩下的🐎都有可能成功前4,这个时候剩下 16 - 3 - 2- 1 = 10匹马。

步骤5: 我们可以确定最快的马 是步骤3中4匹马中最快的马,所以可以排除,剩下 10 - 1 = 9 匹马,在这9匹马中挑选8匹马进行比赛,但是还剩一批马不知道结果,所以还有可能要进行一次比赛,但是我说的是有可能,因为我们可以更具9 赛 8 的这场比赛推断出还要不要进行下一次比赛,从而有可能少比赛一次。方法: 步骤3中4匹马最慢的那匹不参加比赛,剩下8匹马参加,这8匹马中找到最快的3匹马,如果最快的3匹马的第一名或者第二名包含 步骤3中4匹马倒数第二快的马的话,那么就要再进行一次比赛来判断步骤3中4匹马最慢的那匹要不要比赛,否则 就不用判断,这个道理还步骤4中提到的原因类似。

综上所述:一共要进行 1 + 1 + 1 + 1(2) 次比赛,既4次比赛或者5次比赛

道理如下图所示:

图片参考自:腾讯面试:赛马问题【超详细图解】64匹马,8个赛道,找出前4名最少比赛多少场?_有温度的算法的博客-CSDN博客_64匹马8个跑道

2.

烧绳子

燃烧一根不均匀的绳子需要一小时,怎么做才能问如何度量出半个小时,45分钟,75分钟?

烧绳子问题:

首先,题目条件是绳子不均匀,所以我们不能再绳子上面画线决定烧多长时间。

步骤1:题目说🔥一根绳子需要1小时,也就是说从一边烧需要一小时,如果我从两头同时烧,那是不是只需要半小时烧一根绳子。这样我们就得出了半小时需要的时间。

步骤2: 找出45分钟,更具上一个步骤,一个绳子两边一起烧,就可以得到30分钟,这个时候准备两根绳子,一根绳子从两头烧,一个绳子从一头烧,两根绳子一起烧。我们可以知道 两根一起烧的时候,两头烧的那个先烧完,烧了30分钟,当两头一起烧的那个绳子先烧完了,一头烧的也烧了30分钟,如果这样放纵下去不管这根绳子继续烧的话,还会烧30分钟,但是这个时候我们把这个一头烧的绳子另外一头点燃让它两边一起烧,相当于加二倍速度烧,同时开始从0计时,等这根绳子烧完了停止计时,那么这个时候记录等时间就是15min的。所以要计算45分钟,那么就准备两根绳子,一个从一头烧,一个从两头烧,然后开始计时等到两头烧的刚烧完,把另外那个一头烧的绳子点燃另外一头,等这个绳子烧完,就是45分钟的时间。

步骤3:找出75分钟

需要3根绳子,步骤和步骤2类似,只不过再多烧一根绳子就ok了。

倒水

  1. 如何用5L和7L的杯子,倒出6L水?

首先,我们要知道只有7L的水才能装的下6L的水,所以最终6L水是在7L的杯子里面。

步骤一:给7L的杯子倒满水,然后把杯子里的水倒给空的5L的杯子里面,倒满,这个时候7L杯子里面还剩下2L水,把5L杯子里面的水倒空出(让5L杯子空),把这2L水倒入5L杯子里面,此时5L杯子里面有2L水,再给7L的杯子里面倒满水,然后倒入5L的杯子里面把它倒满(只能倒入3L)此时7L里面的水还剩4L,把5L杯子里面的水全倒出来,然后把这4L导入5L杯子里面,然后再给7L杯子倒满。注意⚠️,见证奇迹的时候要来了:用7L的杯子给5L的杯子倒满(只能倒入1L因为5L杯子里面有上回合的4L),7L杯子里面还剩下 7 - 1 = 6L的水,结果出来!

2.如何用5L和6L的杯子,倒出3L水?

 和上面的步骤类似:

6L水倒入5L空杯,此时剩下1L,把5L倒空然后把1L倒入

6L水倒入5L杯子(含有1L水的杯子),此时还剩2L,把5L倒空,然后把2L倒入

6L水倒入5L杯子(含有2L的杯子),此时就剩下3L水在6L杯子里面了,因为最多能往5L杯子倒入3L水

毒药问题

1000瓶水,其中有一瓶可以无限稀释的毒药,要快速找出哪一瓶有毒,需要几只小白鼠?

用2进制的观念去解决这个问题。

2的10次方是1024,也就是说至少要 10个bit表示1000 10个bit位最多能表示1024 - 1= 1023.

需要10只小白鼠,每一只小白鼠代表一个bit。

给1000瓶水编号,从1 - 1000

然后计算步骤开始:

从第一瓶开始 找到毒药编号的2进制码,找到编号bit位为1的位置,然后找到相对应小白鼠,给把毒药喂给每只小白鼠对应对水中。混合好后让小白鼠喝水,找出死掉的小白鼠,算出来对应编号的毒药

先手必胜策略问题

两个人,100本书,每次一个人能够拿1-5本,怎么拿能保证最后一次是你拿?

最后一次是我拿的话,那么我可以拿1 - 5本书,再我拿之前,那个人也可以拿1-5本书,所以为了保证我能最后一次拿到书,要让那个人在倒数第二次拿书的时候至少在他拿之前,还剩下6本书。

所以要保证书的总数在6的倍数。

要保证书的总数一直是6的倍数,就得我先拿,所以100本书的话我刚开始要拿4本 还剩下96本。

然后让他随便拿,但是我拿书的目的就是让剩余书的总数保持6的倍数就可以了。

在24小时里面时针分针秒针可以重合几次?

首先我们要计算12小时里面 时针和分钟重合几次,从12点开始算 重合一次 然后在 从 1 - 11 这个区间每个区间会重合一次 既10次,但是在12 - 1 和11 - 12这个区间只会重合 一次也就是12点(这个地方比较坑)所以12小时里面一共重合11次, 24小时就重合22次。

再来看秒针,这三个针要一起重合的条件是,分针时针必须重合,秒针速度比较快,所以找到相对慢的两根针,重合的时间就是找到三针重合的时间。

所以最终结果是 重合22次。


http://chatgpt.dhexx.cn/article/5yymoc0L.shtml

相关文章

盘点面试中常见的智力题

由于某些不可抗力,几篇文章做了删除,重新上架,希望于你有益。 面试为何会出现智力题? 可能是为了考察应聘者的综合分析能力、逻辑思维能力、反应能力和解决问题能力吧~ 也可能是...... “我去!这面试者能力可以啊&…

面试中常见的智力题

文章目录 一、提灯过桥问题?二、有两个鸡蛋,如何最快的试出100层楼中刚好那一层扔下鸡蛋会碎?三、在地球什么地方能够,往南走1公里,然后往东走1公里,再往北走1公里能回到原点?四、一块N x M的巧…

面试中常见智力题汇总

面试中常见智力题汇总 1. 二进制问题1.1 毒药问题1.2 分金块问题 2. 先手必胜问题2.1 抢 30的必胜策略2.2 100本书,每次能够拿1~5本,怎么拿能保证最后一次是你拿?2.3 轮流拿石子 3. 推理题3.1 掰巧克力问题3.2 辩论赛问题3.3 在24小时里面时针…

2020秋招华为笔试题-买钉子

1.题目描述 2.代码实现 主要思路&#xff1a;类似零钱兑换 #include <iostream> #include <vector> using namespace std;class Solution { public:int buyNails(vector<int>& nails, int count) {vector<int> dp(count1, -1);dp[0] 0;for(int …

华为2022硬件逻辑笔试题

单选题&#xff08;每题两分&#xff09; 1.以下关于过程赋值的描述&#xff0c;不正确的是&#xff08;&#xff09; A在非阻塞性过程赋值中&#xff0c;使用赋值符号“< ” B赋值操作符是“”的过程赋值是阻塞性过程赋值 C在非阻塞性过程赋值中&#xff0c;对目标的赋…

AJAX原理快速入门

AJAX的原理 Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求&#xff0c;从服务器获得数据&#xff0c;然后用 javascript 来操作 DOM 而更新页面的局部显示。 Ajax 的优点&#xff1a; 1.最大的一点是页面无刷新&#xff0c;给用户的体验非常好。 2.使用异…

Ajax详解~及原理刨析

目录 什么是Ajax 同步和异步 Ajax如何实现异步和局部刷新 Ajax工作原理 Ajax工作流程 1、创建XMLHttpRequest对象 2、创建HTTP请求 3、向服务器发送数据 4、设置回调函数 &#xff0c;在回调函数中针对不同的响应状态进行处理 完整实例 Jquery中的ajax 什么是Ajax…

和vue相似的ajax原理及vue中运用ajax

和vue相似的ajax原理及vue中运用ajax。 一&#xff0c;默认的app.vue/文件 App.vue     App.vue是项目的主组件&#xff0c;页面入口文件 &#xff0c;所有页面都在App.vue下进行切换&#xff0c;app.vue负责构建定义及页面组件归集。                二&…

ajax工作原理

ajax工作原理 在写这篇文章之前&#xff0c;曾经写过一篇关于AJAX技术的随笔&#xff0c;不过涉及到的方面很窄&#xff0c;对AJAX技术的背景、原理、优缺点等各个方面都很少涉及null。这次写这篇文章的背景是因为公司需要对内部程序员做一个培训。项目经理找到了我&#xff0…

Ajax原理学习

一、AJAX 简介 AJAX即“Asynchronous Javascript And XML”&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换&#xff0c;AJAX 可以使网页…

Ajax工作原理和实现步骤

目录 一 Ajax技术与原理 1.1 Ajax简介 1.2 Ajax所包含的技术 1.3 Ajax的工作原理 1.4 XMLHttpRequest 对象的三个常用的属性 1. onreadystatechange 属性 2. readyState 属性 3. responseText 属性 1.5 xmlhttprequst的方法 1. open() 方法 2. send() 方法 二 Ajax…

Ajax原理,技术封装与完整示例代码

在做项目和学习的时候&#xff0c;经常用到Ajax的相关技术&#xff0c;但是这方面的技术总是运用的不是十分好&#xff0c;就寻找相关博客来学习加深Ajax技术相关。 一、Ajax简介二、同步、异步传输区别 2.1 异步传输2.2 同步传输 三、Ajax所包含的技术四、基础Ajax示例五、完整…

Ajax 原理是什么?如何实现?

Ajax 原理是什么&#xff1f;如何实现&#xff1f; 一、Ajax 原理是什么二、实现过程创建XMLHttpRequest对象与服务器建立连接给服务端发送数据绑定onreadystatechange事件 三、封装 一、Ajax 原理是什么 AJAX全称(Async Javascript and XML) 即异步的JavaScript 和XML&#…

Ajax 原理详解

名字的来历: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML) 优点是 在不刷新整个浏览器的情况下,与服务器交换数据并更新部分网页内容 AJAX是基于现有的Internet标准 AJAX是基于现有的Internet标准,并且联合使用它们: XMLHttpRequest 对象 (异步的…

原生js实现Ajax原理

相信很多小伙伴在面试的时候&#xff0c;大部分都逃不了被问原生js的问题吧&#xff0c;尤其是高频的高频&#xff0c;** 说一下实现原生Ajax的原理** 原生&#xff1f;&#xff1f;&#xff1f;哦买噶的&#xff01; 在回答这个问题前&#xff0c;我们需要了解一下什么是ajax…

Ajax原理

AJAX 即 Asynchronous Javascript And XML&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 是一种用于创建快速动态网页的技术。它可以令开发者只向服务器获取数据&#xff08;而不是图片&#xff0c;HTML文档等资源…

Ajax是什么以及Ajax交互原理(详,图文并茂,原理篇)

一 Ajax技术与原理 1.1 Ajax简介 Ajax Asynchronous JavaScript and XML (翻译成人话就是&#xff0c;异步的 javascript 和 XML 相结合的一种技术 ) 需要澄清的是&#xff0c;Ajax不是新的编程语言&#xff0c;而是一种 使用现有标准的新方法&#xff0c;还是一种 与服务器…

Ajax 原理总结

一 Ajax技术与原理 AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 是与服务器交换数据并更新部分网页的技术&#xff0c;在不重新加载整个页面的情况下。 AJAX 的核心是 XMLHttpRequest 对象。 Ajax的工作原理 Ajax的工作…

Ajax基本原理与实现

Ajax 的全称是Asynchronous JavaScript and XML&#xff08;异步的JavaScript 和 XML&#xff09;&#xff0c;其中&#xff0c;Asynchronous 是 异步 的意思&#xff0c;它有别于传统web开发中采用的同步的方式。 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。…

总结 - Ajax工作原理和实现步骤

目录 一 Ajax技术与原理 1.1 Ajax简介 1.2 Ajax所包含的技术 1.3 Ajax的工作原理 1.4 XMLHttpRequest 对象的三个常用的属性 1. onreadystatechange 属性 2. readyState 属性 3. responseText 属性 1.5 xmlhttprequst的方法 1. open() 方法 2. send() 方法 二 Ajax…