美团第二次笔试
最后一题有没有大佬教教
死磕了好久,感觉已经做的没问题了,最后还是爆零
我的思路是前缀和先算一轮最大的区间,对这个区间的所有数乘k,再重新算前缀和,对最小区间的所有数再乘k,最后累加
已经考虑到两次先后分开算了,不知道为什么还是一分没有,求大佬指点
死磕了好久,感觉已经做的没问题了,最后还是爆零
我的思路是前缀和先算一轮最大的区间,对这个区间的所有数乘k,再重新算前缀和,对最小区间的所有数再乘k,最后累加
已经考虑到两次先后分开算了,不知道为什么还是一分没有,求大佬指点
全部评论
k等于和小于0的时候策略会不一样吧,但是不知道为什么我也是0
有博弈的,第一次操作会影响第二次操作。比如第一次区间内可能有负数,如果第二次求得的区间仍然包含这个负数,那么这个负数其实是 * k^2 的。所以这个思路本身就不对。
考虑了k小于等于0,也是爆零,同样是用前缀和思想做的,自测测了n个都没问题
举个反例 [10,-9,10] k = 2 ; 按照你的算法 ,第一轮会选择 [1,3] 变成 [20,-18,20] ,第二轮 选择区间[2,2], 变成[20,-36,20];sum = 4; 但最优解是第一轮[1,1] 变成[20,-9,10] 第二轮[2,2]变成[20,-18,10] sum = 12 > 4 。 所以你的方法就算k > 0 这种情况下也是错的, 爆0不冤
相关推荐
11-25 19:33
南京理工大学 C++ 乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享