演算法期中1005 最小和

2021-08-10 18:04:05 字數 912 閱讀 6682

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...