携程笔试10.10

第四题 q次询问区间内交替与或的结果 怎么做呀
全部评论
不知道,我一个for循环他也能超时、还能怎么优化
2 回复 分享
发布于 10-10 12:15 陕西
最后一题是这样的 首先,数字范围是0到2的30次方,所以可以把数字分成30个bit来进行处理,最后把30个bit拼接起来就行 然后Tricky的点来了,如果出现了&0,那么前面无论是0还是1最后都会变成0,如果出现了|1,前面无论是0还是1都会变成1,也就是说前序的信息都丢失了,有用的就是最新出现的关键位是&0还是|1 然后你需要维护两个n*30的数组用来记录每个数字每个bit的前序情况,进行两次正向遍历,分别记录Op1和Op2的结果,对于OP1来说,如果第奇数个数字的某个bit出现了0,那么后续的结果都是0,如果第偶数个数字的某个bit出现了1,那么后续都是1,OP2是相反的 然后对于给出的l和r,需要判断r的关键位是不是小于l,如果不是就按关键位记录的结果,是就按他自己的结果,反正写起来很复杂,前三题打了30分钟,最后一题一个半小时
2 回复 分享
发布于 10-10 12:53 上海
离线做OOM了
1 回复 分享
发布于 10-10 13:33 广东
T4 暴力超时,可以尝试离线查询优化
点赞 回复 分享
发布于 10-10 12:47 湖北
佬~你这套有选择题吗,有没有一道线性回归的单选题呀,想半天了没想通
点赞 回复 分享
发布于 10-10 23:11 北京
暴力超时25%,二分不超时但是二分0%😭
点赞 回复 分享
发布于 10-12 23:26 湖南

相关推荐

找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
2 4 评论
分享
牛客网
牛客企业服务