4.13 阿里笔试第一题

小动物投票那个题,一开始想错了然后做了一个小时gg,后来交卷前三分钟想到哪错了
唉每次都会读错题,然后我考完试自己写了一下,每个小动物都用dfs求连通,然后visited记录是否被访问,每次新的小动物的visited都要重置。
测试了自己想的几个用例好像都是对的,
比如:
小动物崇拜列表:
[0,1,1,2,3,4]
输出:
[6, 3, 2, 2, 1, 1]
想找ac的大佬帮我看看有没有错误
阿里与俺无缘了
def solve(n,a):
    res = []
    a.insert(0,0)
    for i in range(1,n+1):
        visited = [False]*(n+1)
        tmpcount =1
        tmpcount+= dfs(i,visited,n,tmpcount)
        res.append(tmpcount)
    return res

def dfs(i,visited,n,count):
    print(count)
    tcount =0
    for j in range(i+1,n+1):
        if a[j]==i and not visited[j]:
            #往下找还有么
            visited[j] = True
            tcount+= dfs(j,visited,n,count)+1
    return tcount



a = [0,1,1,2,3,4]
n =6
res = solve(n,a)
print(res)


#阿里巴巴##笔试题目#
全部评论
你还是没读懂题目,题目说每个小动物只会投票给它能力值高的,能力值按输入顺序从高到低(但不需要给出),所以投票图是树状的,不会有环,所以也不需要dfs和visited,从后到前累加就行了= = 我也没看清题,没看到能力值从高到低,还以为要写拓扑排序,然后没来得及。。。。。从前向后一个个加只有90%,所以你这个对了也拿不满。
点赞 回复 分享
发布于 2020-04-14 04:37
放心,有没有面试和这个没啥关系,我笔试0分,自己本来都放弃了,做天做完第三天突然接到电话
点赞 回复 分享
发布于 2020-04-14 08:33
从后到前累加就行,比如n投给自己,他的对象投给1,那么1就会收到n和n的对象两张票
点赞 回复 分享
发布于 2020-04-14 08:40
没读懂题,过了%10,我下来有想了下,测试用例能过但是题意还是很多疑问,我贴代码 #include<iostream> using namespace std; int main() { int n; cin >> n; int *p = new int[n](); int *res = new int[n]; for (int i = 0; i < n;++i) { cin >> p[i]; res[i] = 1; } for (int j = 0; j < n; ++j) { if (p[j] != 0) { res[p[j]-1] += 1; } } for (int k = 0; k < n; ++k) { cout << res[k] << " "; } return 0; } 有大佬过了的指正一下
点赞 回复 分享
发布于 2020-04-14 11:04
 你这 时间复杂度 也不对啊   。  O(n^2)的复杂度超时了,  你可以用个  数组 记录啊 ,  可以变成线性
点赞 回复 分享
发布于 2020-04-14 18:23
我是用动态规划做的,开辟一个数组,初值都是1,相当于每个动物自己投给自己,然后从后向前遍历崇拜对象数组,每一次都在当前崇拜对象的结果上加上当前小动物的票数,AC了。
点赞 回复 分享
发布于 2020-04-18 13:15

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
评论
点赞
5
分享
牛客网
牛客企业服务