description
從數列a[0], a[1], a[2], …, a[n-1]中選若干個數,要求對於每個,i(i >= 0, i <=n - 1)a[i]和a[i+1]至少選乙個數,求能選出的最小和.
1 <= n <= 100000, 1 <= a[i] <= 1000
請為下面的solution類實現解決上述問題的函式minsum,函式引數a是給出的數列,返回值為所求的最小和.
class solution 例1:a = ,答案為4.
例2:a = ,答案為5.
注意:你只需要提交solution類的**,你在本地可以編寫main函式測試程式,但不需要提交main函式的**. 注意不要修改類和函式的名稱.
解析:
a =
初始化:
notchoosecurrent = 0;
choosecurrent = 2;
i = 1
notchoosecurrent = 2(上一次的choosecurrent )
choosecurrent = min(0, 2) + 5 = 5
i = 2
notchoosecurrent = 5(上一次的choosecurrent )
choosecurrent = min(2, 5) + 4 = 6
i = 3
notchoosecurrent = 6(上一次的choosecurrent )
choosecurrent = min(5, 6) + 8 = 13
最終結果是min(5, 6) = 6
**:
class solution
return min(choosecurrent, notchoosecurrent );
}};
演算法期中 最小和
從數列a 0 a 1 a 2 a n 1 中選若干個數,要求對於每個i 0 i n 1 a i 和a i 1 至少選乙個數,求能選出的最小和.1 n 100000,1 a i 1000 請為下面的solution類實現解決上述問題的函式minsum,函式引數a是給出的數列,返回值為所求的最小和.例1...
演算法期中練習 1001 最小差
description 對於乙個整數數列a 0 a 1 a n 1 要求在其中找兩個數,使得它們的差的絕對值最小.2 n 100,1000 a i 1000.example 例1 當a 返回4.例2 當a 返回0.請實現下面solution類中計算mindifference a 的函式,返回值為能得...
演算法期中 分組
對於乙個整數數列a 0 a 1 a n 1 進行分組,要求每組1到2個數,並且同組之和不能大於w.求最少可以分成多少組.1 n 100000,1 a i w 1000000000.例1 當a w 5,minpartition a,w 返回3.將2和3放一組,4和5各自單獨作為一組,共3組.例2 當a...