微软笔试
#引流 微软 微软 微软
0806:都是核心代码模式
1、修路,"....xxx....xxxx...xx" “.”代表路面平整,“x”代表路面不平整,消除连续的k个x消费k+1,实现一个函数public int solution(String S, int B)求出B最多能修复的x.
2、交换小球,"RWRRRWWR" R代表红色小球,W代表白色小球,每次只能交换相邻的两个小球,求能让红色小球全部连续的最小交换次数,如果交换次数大于10的9次方则返回-1.
3、看病问题,医生有S个时间空隙,有N个病人,编号0~N-1,病人可以选择A[i]的时间空隙,也可以选择B[i]的时间空隙,医生每个时间段只能看一个病人,能安排所有病人看病返回true,不能则false;实现函数public boolean solution(int[] A,int[] B, int S)
用例1:
A[1,2,1,6,8,7,8]
B[2,3,4,7,7,8,7]
S=10
找不到任何一个序列能看完所有的病人,返回false;
用例2:具体忘记了
就是病人数量大于S数量,返回false;
用例3:具体也忘记了,自己想的一个合理的例子
A[1,3,1]
B[2,3,2]
S=3
那么1,3,2或者2,3,1都是满足的序列,返回true
#笔经#
0806:都是核心代码模式
1、修路,"....xxx....xxxx...xx" “.”代表路面平整,“x”代表路面不平整,消除连续的k个x消费k+1,实现一个函数public int solution(String S, int B)求出B最多能修复的x.
2、交换小球,"RWRRRWWR" R代表红色小球,W代表白色小球,每次只能交换相邻的两个小球,求能让红色小球全部连续的最小交换次数,如果交换次数大于10的9次方则返回-1.
3、看病问题,医生有S个时间空隙,有N个病人,编号0~N-1,病人可以选择A[i]的时间空隙,也可以选择B[i]的时间空隙,医生每个时间段只能看一个病人,能安排所有病人看病返回true,不能则false;实现函数public boolean solution(int[] A,int[] B, int S)
用例1:
A[1,2,1,6,8,7,8]
B[2,3,4,7,7,8,7]
S=10
找不到任何一个序列能看完所有的病人,返回false;
用例2:具体忘记了
就是病人数量大于S数量,返回false;
用例3:具体也忘记了,自己想的一个合理的例子
A[1,3,1]
B[2,3,2]
S=3
那么1,3,2或者2,3,1都是满足的序列,返回true
第二次
未完待续....
#笔经#
