百度面试题(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());
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值