zoukankan      html  css  js  c++  java
  • 腾讯的一道测试题

          前几天做了腾讯的测试题,有一道题挺有意思的,题目的大意是:

    有36辆摩托车6个赛道,在没有计时器的情况下,如果要选出跑的最快的三辆车,至少需要几次比赛?

          我最初的想法是:要选出最快的三辆车,先让这36辆车分成6组,每一组比一下,选出每一组的第一名,然后让这6个第一名比一次,选出前三名就行了,果断的选择了7次,显然这是错误的(这个题和田忌赛马有那么一点点的相似,看来的我智商不如古人啊.....囧)。

          后来仔细一想,我觉得应该这么想:假设36辆车被分配到了A,B,C,D,E,F六组中,我们给每一组比赛一次,从中选出每一组的三辆车,A1-A3...F1-F3(为什么要选出三辆车呢?为了防止出现36辆车中最快的3辆都被分配到了A组中,如果按照最开始的想法,第一次比赛就把实际上第二快和第三快的车都给淘汰了,所以最开始的想法是错误的,选出三辆就不会出现实际上最快的前三辆车被淘汰的情况),这6组需要6次比赛,然后我们将A1,B1,C1,D1,E1和F1(假设A1,B1,C1,D1,E1,F1是每组中最快的车)比赛一次,选出前三名,假设前三名是A1,B1,C1,那么此时被淘汰的车是DEF这三组的所有车(因为这三组中最快的三辆车都输了),剩下的问题就是在A1-A3,B1-B3和C1-C3这9辆车中找到最快的三辆车,显然至少需要2次比赛。

          因此,总的比赛次数应该是9次(6+1+2),如果谁有更快的思路,欢迎留言并交流!!!

  • 相关阅读:
    【转】C++多继承的细节
    【转】CVE-2010-4258 漏洞分析
    【转】cve-2013-2094 perf_event_open 漏洞分析
    android CVE 漏洞汇总
    ExecutorService中submit和execute的区别
    线程池之ThreadPoolExecutor使用
    postman接口自动化,环境变量的用法详解(附postman常用的方法)转
    件测试专家分享III GUI自动化测试相关
    Linux上运行Jmeter
    时间复杂度和空间复杂度计算
  • 原文地址:https://www.cnblogs.com/sjinsa/p/4774972.html
Copyright © 2011-2022 走看看