vivo 笔试题(唯一一道编程题)

1. 输入:一个非负整数数组cost,cost[i] 为对应位置的花费,从第一个或第二个位置开始,一次可以跳一步或两步,

输出:求跳出数组的总花费最小的路径,若有多条输出其中一条即可

```
def f(cost):
    """
    :type cost: list
    :rtype: list
    """
    path = [None] * len(cost)
    dp = [None] * len(cost)
    path[0], path[1] = [0], [1]
    dp[0], dp[1] = cost[0], cost[1]
    for i in range(2, len(cost)):
        if dp[i-2] < dp[i-1]:
            path[i] = path[i-2] + [i]
            dp[i] = dp[i-2] + cost[i]
        else:
            path[i] = path[i-1] + [i]
            dp[i] = dp[i-1] + cost[i]
     if dp[-1] < dp[-2]:
         return path[-1]
     else:
         return path[-2]

结束后才写出来的,请同学们看下有问题没,自己写出dp的题,好开心(^▽^)

#vivo##笔试题目##笔经#
全部评论
膜 我都没看懂题意
点赞 回复
分享
发布于 2018-09-28 21:36
请问下楼主,vivo笔试完,官网的状态是啥
点赞 回复
分享
发布于 2018-09-28 23:30
联想
校招火热招聘中
官网直投
请问不同地区的题一样吗?
点赞 回复
分享
发布于 2019-05-27 19:26

相关推荐

点赞 9 评论
分享
牛客网
牛客企业服务