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##笔试题目##笔经#