饿了么笔试0307

有没有大佬可以讲讲饿了么笔试0307算法编程的第一道题目呀?
大致意思就是,找出GCD与异或和乘积最大的子数组;
我的思路就是穷举,但是0%的通过率......
int ans = 0; 
for(int i = 0; i < n; ++i) { 
    int cxor = 0; int cgcd = 0; 
    for(int j = i; j < n; ++j) { 
        cxor = cxor ^ nums[j]; 
        cgcd = (j == i ? nums[j] : gcd(cgcd, nums[j])); 
        ans = max(ans, cgcd*cxor);
}
全部评论
我给加了个剪枝AC了,如果当前最大公约数乘最大异或值也<=ans,那往后就没必要看了。看到有大佬说其实就是最大数的平方,发现真是
1 回复 分享
发布于 03-07 22:28 北京

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务