解答Google的一道面试题

这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来得知那个临界层面。”下面给出我的分析和解答。

 

为了得到两个棋子的最优策略,我们先简化问题,看看一个棋子的情况。如果手中只有一个棋子,为了得知临界层面,你只有一种选择:从2楼开始,一层一层地试,直到棋子被打碎,此时你站的楼层就是所求的临界层面。在最差的情况下,我们需要投掷99-2+1=98次,你可能奇怪为什么不是100-2+1=99次,那是因为题目已经告诉我们“从这个大厦的某一层扔下围棋子就会碎”,所以在99层扔下来还没碎的话就不用去100层了——从那里扔它一定会碎。

 

从一个棋子的策略我们可以看出,一个棋子就足以解答这个问题了。现在又多了一个棋子,该如何利用它呢?很自然地,我们希望能通过这个棋子缩小这种一层一层查找的范围。为了缩小范围,我们将整个大厦的层数分成x段,在这x段中查找那个临界段,然后在临界段中再一层一层地找临界层。比如可以将大楼分成4段,我们分别在25层、50层、75层投掷棋子,以确定临界段;如果临界段在25层到

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
面试过程中可能会涉及到nginx的相关问题。以下是一些常见的nginx面试题及其解答: Q1:什么是Nginx? A1:Nginx是一个高性能的开源Web服务器软件,也可以用作反向代理、负载均衡器和HTTP缓存等。它以其高并发能力、低内存消耗和高可靠性而闻名。 Q2:Nginx和Apache有什么区别? A2:主要区别包括: - Nginx是事件驱动的,而Apache是多线程模型。 - Nginx占用更少的内存并能处理更多的并发连接。 - Nginx配置更简洁灵活,对静态文件的处理效率更高。 Q3:如何配置Nginx服务器块(server block)? A3:可以在nginx.conf文件中的http块中添加多个server块来配置不同的虚拟主机。每个server块指定监听端口、服务器名称和相应的location规则。 Q4:如何配置Nginx反向代理? A4:可以使用`proxy_pass`指令将请求转发到后端服务器。例如: ``` location / { proxy_pass http://backend_server; } ``` Q5:如何配置Nginx负载均衡? A5:可以使用`upstream`块定义一组后端服务器,并使用`proxy_pass`指令将请求分发到这些服务器。例如: ``` upstream backend { server backend1; server backend2; } location / { proxy_pass http://backend; } ``` Q6:如何设置Nginx的SSL/TLS支持? A6:需要配置SSL证书和私钥文件,并将其指定给`ssl_certificate`和`ssl_certificate_key`指令。同时,还需在server块中指定监听443端口和ssl参数。 这只是一些常见的nginx面试题及其解答,希望能对你有所帮助。在面试前,建议你对nginx的基本概念、配置指令和常见用法有所了解,并深入研究相关文档和资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值