记录一下米哈游客户端笔试
第一题前缀最大最小值,比较简单
第二题大概是找字符串里面的最长连续全0子串(包括跨首尾的),主要注意字符串全0的时候面积是正方形(有一个点)
第三题是从给定数组里找乘积等于某个值的数字位置,主要是时间复杂度问题,一开始两重循环遍历O(n^2)超时20%,后来做了两个剪枝:第一个是对于输入数组里出现超过两次的数只保留前两个,剩下只需占位置不用考虑参与乘法计算;第二个是对于比较大的数可以用筛法直接找它的倍数
第二题大概是找字符串里面的最长连续全0子串(包括跨首尾的),主要注意字符串全0的时候面积是正方形(有一个点)
第三题是从给定数组里找乘积等于某个值的数字位置,主要是时间复杂度问题,一开始两重循环遍历O(n^2)超时20%,后来做了两个剪枝:第一个是对于输入数组里出现超过两次的数只保留前两个,剩下只需占位置不用考虑参与乘法计算;第二个是对于比较大的数可以用筛法直接找它的倍数
全部评论
第一题为什么只能过50啊,根本想不出来还能有啥情况
我第三题是排序然后双指针,大了就r-1,小了就l+1,但是超时
过了2.2道,最后一题不是超内存就是超时,优化了二十多分钟还是过不去,优化还是不彻底
第三题我有个思路是,找m的所有因子,然后看因子在不在数组里面应该是nlgn啊,有问题吗,没过的了
A了2.2道
第2题的输入样例是怎么拿到面积为6的矩阵的?没看懂随便写了些只过了5%。第3题没必要筛法,对查询值取个根号再逐个查(乘数放哈希表里),复杂度O(Q(sqrt(max(x))))就可以过了
怪不得我第二题95%,原来我忽略了全0的情况
相关推荐
03-29 16:05
南京大学 Java 点赞 评论 收藏
分享