顺丰笔试

太难了
幸运数一眼没思路,骗了点分;
排列感觉是二分,试了一下确实,一直超时是63%,开始以为是计算math.log2耗时,后来发现只要循环n次必超时,O(n)都不行,最后想到用数组提前保存一下同一个对数结果对应的数字区间,计算好每个区间内数字个数终于100%了...
    n = 5
    count = 0
    list = [0]*31
    for i in range(1,len(list)):
        # list[i] 代表2**i 2**(i-1)有多少个元素
        list[i] = 2**i-2**(i-1)
    cur = int(math.log2(n))+1
    for i in range(1,cur):
        count += list[i]*i # 元素个数*每个元素log结果
    count += cur*(n-2**(cur-1)+1)
    print(count)

#顺丰科技##顺丰科技笔试#
全部评论
第一题其实就是数列性质,你把数列出来,有一个性质比如当数列长度为1,2,3,4,5,6,7,8时,猜第一个数字的次数为1,2,2,3,3,3,3,4,你会发现一个规律,总的最坏猜测次数2^0个1加上2^1个2加上2^2个3.........等,实际上就是一个等差乘等比求和,具体以9为例,最坏猜测次数为1*2^0+2*2^1+3*2^2+4+4最后加的这两个4是因为边界问题,此时算法时间复杂度为O(N),代码如下:
6 回复 分享
发布于 2022-09-01 14:00 四川
第一题是求数列和,只不过数列的性质比较好,可以加速计算。数列长这样:1 2 2 3 3 3 3 4 4 …
2 回复 分享
发布于 2022-08-31 23:31 上海
我第一题是二分+dp,用unsigned long long, 死活过81%。 第二题我怀疑就是二叉树,但题目就是说图,然后把所有节点的值的绝对值加起来,骗分,18%
1 回复 分享
发布于 2022-08-31 21:29 吉林
{"pureText":"","imgs":[{"alt":"discuss_166****683994.jpeg","height":733,"localSrc":"content://media/external/images/media/49752","src":"https://uploadfiles.nowcoder.com/message_images/20220831/898222181_1661959684548/discuss_1661959683994.jpeg","width":1426}]}
1 回复 分享
发布于 2022-08-31 23:28 北京
有构造试卷的代码吗
1 回复 分享
发布于 2022-09-07 19:15 北京
直接上公式
点赞 回复 分享
发布于 2022-09-01 10:41 广东
幸运数有js版本的代码吗
点赞 回复 分享
发布于 2022-09-02 22:48 江苏

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
评论
6
14
分享
牛客网
牛客企业服务