3.10百度笔试
补:第二题不是n的阶乘,是n的∑求和
1.将一个数组分成k份,要求每一份的平均值和最小
思路:排序,然后将前k-1个最小的单独分组,将剩下的分为一组
2.求一个由r e d三个字符组合的字符串,要求得有k个回文子串,例如red就有三个回文子串
思路:三个字符串不管怎么排最短的一定是一堆相同字符,比如要求3个的话就是rr就是最短,
然后又知道n个相同字符的回文子串是n!个
所以先去排x个r保证 x的阶乘恰好小于等于k,然后再排y个e 保证y的阶乘恰好小于等于k-x!
同理排z个d,保证z恰好小于k-x!-y!,最后剩下的个数就用red循环来补就是了
第三题:小红写了一堆方法,有些方法是重载有效,有些冲突无效,比如输入
int f()
int f(int x)
int f(int y)
输出yes yes no
思路:定义Function类,里面有返回类型,方法名字,一个hashmap记录着参数类型和其数量,然后自己写个比较方法equal 如果名字相同并且hashmap的大小相同,并且每个键值对都相同那么冲突(其实好像不用记录返回类型)
然后就是挨个查有没有跟成功队列的方法冲突的,如果没有就放入成功队列里面去
第三题有没有更好的思路的,我不知道怎么比较才更快,就只有每次比较时遍历成功队列取出每一条方法进行比较,感觉有点呆
感觉最近运气不是很好,每个厂的终面都暴死,攒攒运气吧
1.将一个数组分成k份,要求每一份的平均值和最小
思路:排序,然后将前k-1个最小的单独分组,将剩下的分为一组
2.求一个由r e d三个字符组合的字符串,要求得有k个回文子串,例如red就有三个回文子串
思路:三个字符串不管怎么排最短的一定是一堆相同字符,比如要求3个的话就是rr就是最短,
然后又知道n个相同字符的回文子串是n!个
所以先去排x个r保证 x的阶乘恰好小于等于k,然后再排y个e 保证y的阶乘恰好小于等于k-x!
同理排z个d,保证z恰好小于k-x!-y!,最后剩下的个数就用red循环来补就是了
第三题:小红写了一堆方法,有些方法是重载有效,有些冲突无效,比如输入
int f()
int f(int x)
int f(int y)
输出yes yes no
思路:定义Function类,里面有返回类型,方法名字,一个hashmap记录着参数类型和其数量,然后自己写个比较方法equal 如果名字相同并且hashmap的大小相同,并且每个键值对都相同那么冲突(其实好像不用记录返回类型)
然后就是挨个查有没有跟成功队列的方法冲突的,如果没有就放入成功队列里面去
第三题有没有更好的思路的,我不知道怎么比较才更快,就只有每次比较时遍历成功队列取出每一条方法进行比较,感觉有点呆
感觉最近运气不是很好,每个厂的终面都暴死,攒攒运气吧
全部评论
分离出方法名和参数类型名,用方法名+参数列表类型名作为key丢到一个HashSet里面就可以吧
第一题按照你的思路通过率0%啊
不知道为什么和你一样的思路,只能A60%
第一题一样的思路第一题一样的思路用JAVA写只过了30%,然后剩余的超时了
mark下是4/10,问下第一题这个思路怎么保证每个子序列不含重复值啊
n个相同字符的回文子串是n!阶乘吗?不是n∑求和吗
第一题这种思路怎么证明是对的呀
相关推荐