算法笔试题:过桥问题

问题:某夜,有个团伙要过桥,该桥每次只能通行2个人,只有一个手电筒,过桥必须持有手电筒。
   这些人单独过桥的时长分别为t1、t2、t3、t4、t5 ……tn。

谁能设计程序计算出这伙人过桥需要的最短时间?

解题思路:两种方案过桥

    2t1 进行对比 t1+t(n-1);

   1、12充当运输车的作用,每次1,2 去,1回,另外的去,2再回(2t1 < t1+t(n-1))

                        2、1充当运输车,每次都和另一个人走,1回来(2t1 > t1+t(n-1))

public static void GoThroughBridge() {
		System.out.println("请输入过桥的人数");
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		int[] arr = new int[N];
		System.out.println("请输入每个人过桥的时间");
		for(int i = 0;i

刚开始做这个问题的时候感觉很难,但是和同学讨论了一会儿就感觉懂了,我们一起写,他用的是递归的方式,感觉用递归的方式比我的方式简单,但是我这种方式也是看过了一篇文章才有的灵感,模仿人家写的。

你可能感兴趣的:(Java学习,算法笔试)