搜狗算法题第一题

交卷后才写完,不过应该是对的,至少测试用例是对的

def search(x):
    dic = {}
    for i in range(1,x):
        li = [ ]
        li.append(x)
        li.append(i)
        print('1:',i)
        n=1
        while(li[n]>=1):
            n = n+1
            print('li',li)
            li.append(li[n-2]-li[n-1])
            print('i:',i)
            print('n:',n)
            print('li[n]:',li[n])
            
        index = n
        print('index:',index)
        for i in range(3,index+1):
            if i not in dic.keys():
                dic[i] = 1
            else :
                    dic[i] = dic[i] +1
    return dic
        
if __name__ == '__main__':
    x = int(input())
    output = search(x)
    for i in output.keys():
        print(i,output[i])


#笔试题目##题解##搜狗#
全部评论
超时 ,打回
点赞 回复 分享
发布于 2019-09-09 04:45
测试用例不能代表什么,有时候测试用例只代表通过测试用例,其他任何数据都不过,系统还是叛你0%,我第一题我也觉得对的,但是只过30%
点赞 回复 分享
发布于 2019-09-08 21:16
有大佬分享一下吗?
点赞 回复 分享
发布于 2019-09-08 20:07
把序列倒过来,递归f[n] = f[n-2] - f[n-1],f0 = x(输入),1 =< f1 <= x-1 ,递归减法,知道最后一个元素再后面一个元素值小于1(所有数都为正整数),循环f1所有情况,每种f0,f1组合得到一种倒序序列,这个序列可以去掉尾部任意长度,保留的前面部分的长度至少大于等于2,每种情况又对应一种倒序序列,每个序列的长度就是x在倒序序列对应的正向序列所在的位置(注意位置从1开始)。f1的范围考虑到了所有的倒序的可能。
点赞 回复 分享
发布于 2019-09-08 20:04

相关推荐

收到了小米的实习offer,犹豫是否要去。。。
认真搞学习:雷总还当过首富呢,公司不算大厂算独角兽吗
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务