刚投内推,不清楚
点赞 评论

相关推荐

老刘111:最后一题是这样的 首先,数字范围是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分钟,最后一题一个半小时
投递携程等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客企业服务