四道题都还算基本,1个小时解决战斗。
第一题:Anagram Difference
输入两个list,返回对应位置的两个string 要改变多少个字才能互为anagram,长度不一返回-1
[‘a’, ‘jk’, ‘abb’, ‘mn’, ‘abc’], [‘bb’, ‘kj’, ‘bbc’, ‘op’, ‘def’]
返回[-1,0,1,2,3]
第二题:Autoscale Policy
题目很啰嗦,做起来很简单
输入(int, list[])
对于list中的每一项x,
如果x>60且如果int<210^8, int2
如果x<25且int>1 int/2 向上取整
否则不操作
对于上述两个如果,期中一个成立则为一个action,如果有一个action,查找list后10位进行比较。
if + if 就解决问题了
第三题:买票问题
输入形如[10,4,2,5,1,4]和index
index表示list中的第几个人,数字表示每个人要买多少张票,每个人一次只能买一张,买完离开队列,没买完返回对位重拍,买一张票要1s。
返回index人买完票需要多少秒。
每次取queue首-1插回list 大数据会超时。
直接数学方法,这个人买完票意味着在他前面的也买了这么多票,在他后面的比他少买一张,所有其他的人买的票比他少的就买它自己的票,for一遍求个和就行了。
第四题:人物关系图求group,类似number of island,只不过按行递归。
1,0,1,0,0
0,1,0,0,0
1,0,1,0,0
0,0,0,1,0
0,0,0,0,1
Group[j]表示 第i个和第j个人 有关系,返回最后有多少组人有关系,自己可为一组,上述例子返回4[{0,2},{1},{3},{4}]。