黑马程序员_JAVA题目_百度笔试题

------- android培训java培训、期待与您交流! ----------

这三题是有人发在论坛分享出来的说是百度笔试题!

package cn.baidu;
/**
 * 1:公司里面有1001个员工,现在要在公司里面找到最好的羽毛球选手,也就是第一名,
 * 每个人都必须参赛,问至少要比赛多少次才能够找到最好的羽毛球员工
 * @author Jeffery
 *
 */
public class Test11 {
	
	public static void main(String[] args) {
		int i = 0;
		while((2<<i)<1001) {
			i++;
		}
		System.out.println(i);
	}
}

这一题,先前写的比较复杂,考虑了很多,最终觉得这样写简洁明了,说实话这题没怎么看懂!这个比赛次数,和比赛场数,搞不清楚区别!

/**
 * 2:现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,
 * 第二趟把偶数位的灯泡制反(也就是开了的关掉,关了的打开),
 * 第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着----
 * @author Jeffery
 *
 */
public class Test12 {
/*
 * 1 灯开
 * -1 灯关
 */
	public static void main(String[] args) {
		int[] arr = new int[101];
		int temp = 1;
		int count = 0;
		for(int i = 1;i<=100; i++) {
			int j = i;
			while(j <= 100) {
				arr[j] = temp;
				j = j + i;
			}
			temp = temp * -1;
		}
		for(int i = 1; i<=100;i++) {
			if(arr[i] == 1)
				count ++;
		}
		System.out.println(count);
	}
}
这一题挺多了,多数题大同小异!

package cn.baidu;
/**
 * 3:有20个数组,每个数组有500个元素,并且是有序排列好的,现在在这20*500个数中找出排名前500的数
 * @author Jeffery
 *
 */
public class Test13 {

	public static void main(String[] args) {
		int[][] arr = new int[20][500];
		int t = 0;
		int sum = 0;
		for(int i = 0;i<arr.length;i++) {
			for(int j = 0;j<arr[i].length;j++) {
				sum = sum + 2;
				arr[i][j] = arr[i][j] +sum;
			}
		}
		while(t++<5)
			System.out.println(max(arr));
	}

	private static int max(int[][] arr) {
		
		int max = 0;
		int t1 = 0,t2 = 0;
		for(int i = 0;i<arr.length;i++) {
			for(int j = 0;j<arr[i].length;j++) {
				if(max < arr[i][j]) {
					max = arr[i][j];
					t1 = i;
					t2 = j;
				}
			}
		}
		arr[t1][t2] = 0;
		return max;
	}

}
循环500次,每次返回一个最大值,并把最大值赋值为零,然后再找余下值的最大值,


------- android培训java培训、期待与您交流! ----------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值