`
xshq
  • 浏览: 44125 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

百度面试题(5只蚂蚁走木棍问题)

阅读更多

题目描述:
    有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

public class Ant {

	private static int LONG = 27;

	private int[] a = { 3, 7, 11, 17, 23 };

	private int min = 0, max = 0;

	public void gogogo() {
		for (int i = 0; i < a.length; i++) {
			min = Math.max(min, Math.min(a[i], LONG - a[i]));
			max = Math.max(max, Math.max(a[i], LONG - a[i]));
		}
	}

	public int getMax() {
		return max;
	}

	public int getMin() {
		return min;
	}

	public static void main(String[] args) {

		Ant client = new Ant();
		client.gogogo();
		System.out.println(client.getMax());
		System.out.println(client.getMin());
	}
}

 

分享到:
评论
12 楼 ronalke 2010-01-07  
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。
en,这想法很新颖!
11 楼 photon 2010-01-07  
<div class="quote_title">yaoweijq 写道</div>
<div class="quote_div">
<p><br>在微软技术面试心得上见过,</p>
<p>不知最早出处是哪?</p>
</div>
<p>不知道出处,只记得在高中物理题上见过</p>
10 楼 yaoweijq 2010-01-07  
<p><br>在微软技术面试心得上见过,</p>
<p>不知最早出处是哪?</p>
9 楼 ITliujun 2009-12-02  
有创新,不错!
8 楼 busy12377 2009-10-22  
这个题也太老了吧!见过N次了!
7 楼 xici_magic 2009-10-18  
chirking 的回答让人能换个角度去考虑问题 不错.
6 楼 vieri122 2009-09-15  
chirking 写道
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。
所以,最长时间应该是 最左短端的蚂蚁一直往右走 和 最右短端的蚂蚁一直往左走 两个时间的最大值。(不考虑别的蚂蚁,一直走就对了)
最小时间应该是 左边的3个蚂蚁往左走,右边的2个蚂蚁往右走 花的时间。
你可以试试。

这个回答很强大
5 楼 areha001 2009-09-14  
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。


这方法太有爱了
4 楼 xshq 2009-07-13  
chirking 写道
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。
所以,最长时间应该是 最左短端的蚂蚁一直往右走 和 最右短端的蚂蚁一直往左走 两个时间的最大值。(不考虑别的蚂蚁,一直走就对了)
最小时间应该是 左边的3个蚂蚁往左走,右边的2个蚂蚁往右走 花的时间。
你可以试试。

这思路确实不错!学习
for (int i = 0; i < ants.length; i++) {
	min = Math.max(min, Math.min(ants[i], LONG - ants[i]));
	max = Math.max(max, Math.max(ants[i], LONG - ants[i]));
}
3 楼 night_stalker 2009-07-11  
这道 百度(搜到的)面试题 可以用来发现把简单问题搞得 n 复杂的人。
2 楼 姜太公 2009-07-11  
chirking 写道
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。

换种角度思考效果就不一样了
1 楼 chirking 2009-07-10  
“当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。“
其实你可以当作它们擦肩而过。
所以,最长时间应该是 最左短端的蚂蚁一直往右走 和 最右短端的蚂蚁一直往左走 两个时间的最大值。(不考虑别的蚂蚁,一直走就对了)
最小时间应该是 左边的3个蚂蚁往左走,右边的2个蚂蚁往右走 花的时间。
你可以试试。

相关推荐

    蚂蚁与木棍问题仿真

    一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒。当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计)。给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置。 程序给出...

    百度面试题大收集算法

    【知识点详解】 ...以上各个知识点涵盖了算法、数据结构、操作系统、网络、数学和概率等多个IT领域,都是程序员在面试中可能会遇到的问题。理解和掌握这些知识点对于提升编程技能和解决实际问题具有重要意义。

    阿里面试 - 蚂蚁金服前端面试题

    在本篇文章中,蚂蚁金服提供的前端面试题涉及多个知识点,包括防抖(debounce)、进制转换、模板引擎、事件订阅机制以及数组转换等。下面将依次详细介绍这些知识点: 防抖(debounce): 防抖是一种减少事件频繁...

    蚂蚁的移动速度问题

    题目给出的是百度面试中的一道题目,要求解决所有蚂蚁都离开木棍的最小和最大时间问题。蚂蚁只能向前走或者调头,当两只蚂蚁相遇时,它们会同时改变方向。木棍上有五个位置有蚂蚁,蚂蚁的初始位置分别为3cm、7cm、11...

    大厂面试真题杭州-蚂蚁金服-资深工程师

    大厂面试真题杭州-蚂蚁金服-资深工程师提取方式是百度网盘分享地址

    大厂面试真题深圳-蚂蚁金服-Java高级

    大厂面试真题深圳-蚂蚁金服-Java高级提取方式是百度网盘分享地址

    大厂面试真题杭州-蚂蚁金服-Java高级

    大厂面试真题杭州-蚂蚁金服-Java高级提取方式是百度网盘分享地址

    蚂蚁云客服机器人面试自我介绍.docx

    【蚂蚁云客服机器人面试自我介绍】的文档主要是一位应聘者在面试蚂蚁云客服机器人的职位时,所做的自我介绍。在介绍中,应聘者展现了自己的专业背景、工作经验、个人优势以及对自身不足的认识。 首先,这位应聘者...

    2019蚂蚁金服面试题及答案

    Java 面试题知识点总结 本文将对 Java 相关的面试题进行总结,涵盖 Java 基础、多线程、线程池、JVM、数据库、Spring、SpringMVC、MyBatis 等知识点。 一、Java 基础 1. 字符串常量池:JVM 为了提高性能和减少...

    【Java面试资料】-蚂蚁金服面试题总结

    本资料集“【Java面试资料】-蚂蚁金服面试题总结”聚焦于Java技术在蚂蚁金服面试中的常见考察点,为求职者提供了一份宝贵的准备指南。 1. **基础语法与数据类型**:面试中,Java的基础知识是必不可少的,包括变量、...

    百度历年笔试面试150题

    ### 百度历年笔试面试150题知识点详解 #### 1. C语言实现字符串倒序函数 **知识点概述:** 本题考察的是基础的字符串操作能力,要求使用C语言编写一个函数`revert`来实现字符串的原地倒序。 **实现思路:** 1. **...

    2019蚂蚁金服Java必问面试题及答案(99)

    【Java核心知识点】 Java作为一款广泛应用的编程语言,在面试中占据...文档"2019蚂蚁金服Java必问面试题及答案-www.javaclimb.com.doc"应包含针对这些知识点的具体问题和解答,可以作为复习和准备面试的重要参考资料。

    蚂蚁面试题总结分享.doc

    蚂蚁面试题总结分享 本文档总结了蚂蚁面试题的相关知识点,涵盖了Java中的HashMap、ConcurrentHashMap、JVM内存结构、并发编程、垃圾回收机制、中间件设计等方面。 一、HashMap和ConcurrentHashMap 在jdk1.7到jdk...

    蚂蚁云客服机器人面试答案.docx

    【蚂蚁云客服机器人面试答案解析】 1. 自我介绍与技术领域:在面试中,自我介绍应简洁明了,强调自己的技术专长和经验。提到自己在IT领域的项目经验,如涉及的技术栈,如微服务、数据库管理、监控工具的使用等。 2...

    蚂蚁金服面试题【项目代码】

    【项目代码】蚂蚁金服面试题涉及到的核心技术主要集中在SpringBoot、MyBatis以及Logback这三个标签上。本文将深入探讨这些技术,并结合实际应用场景,为面试者提供全面的知识准备。 1. SpringBoot:作为现代化Java...

    2019蚂蚁金服Java必问面试题及答案.doc

    2019蚂蚁金服Java面试题及答案 以下是从给定的文件中生成的相关知识点: 一、Java面试题 1. 自我介绍、项目经验和技术领域开放题 * 了解自己所做的项目和技术领域,能够对自己的项目和技术领域进行介绍和分享。 ...

    2019蚂蚁金服面试题.zip

    开放题 2、项目中的监控:那个监控指标常见的有哪些? 答:CPU、内存、IO 等等。建议下载个nmon工具,里面有各个指标。 数据库:Mysql(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数) 中间件:1.消息2...

    蚂蚁集团Java笔试面试题.zip_面试资料下载

    "蚂蚁集团Java笔试面试题.zip_面试资料下载" 这个标题表明这是一份针对蚂蚁集团Java岗位的笔试和面试准备资料。通常,这样的资源会包含一系列的问题、解答以及可能的面试场景,旨在帮助应聘者熟悉蚂蚁集团在招聘过程...

    阿里巴巴Android面试题集(答案解析)1

    阿里巴巴的Android面试题集主要涵盖了计算机基础、数据结构与算法、Java编程、Android技术以及一些扩展领域的知识。以下是对这些知识点的详细解析: **第一章 计算机基础面试题** 这部分通常包括网络、操作系统和...

Global site tag (gtag.js) - Google Analytics