公园里有 n 个花园,初始时每个花园里都没有种花,园丁将花园从 1 到 n 编号并计划在编号为 i 的花园里恰好种 Ai 朵花,他每天会选择一个区间 [L,R](1≤L≤R≤N)并在编号为 L 到 R 的花园里各种一朵花,那么园丁至少要花多少天才能完成计划?
数据范围: ,
第一行包含一个整数 n 。
第二行包含 n 个空格隔开的数 ai 到 an。
输出完成计划所需的最少天数。
5 4 1 8 2 5
14
5 1 1 1 1 1
1
def solution(flowers): dp = [0]*len(flowers) dp[0] = flowers[0] # 初始化dp for i in range(1, len(flowers)): if flowers[i]<flowers[i-1]: dp[i] = dp[i-1] else: dp[i] = dp[i-1]+flowers[i]-flowers[i-1] return dp[-1] if __name__ == '__main__': n = int(input().strip()) flowers = list(map(int, input().strip().split())) print(solution(flowers))
def solution2(flowers): res = [] for i in range(len(flowers)-1): if flowers[i]>flowers[i+1]: res.append(flowers[i]-flowers[i+1]) res.append(flowers[-1]) return sum(res) if __name__ == '__main__': n = int(input().strip()) flowers = list(map(int, input().strip().split())) print(solution2(flowers))