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##笔试题目##笔经#
查看18道真题和解析
