演算法(十二)最小和

2021-08-11 08:35:03 字數 526 閱讀 8881

從數列a[0], a[1], a[2], …, a[n-1]中選若干個數,要求對於每個i(0<=i <=n-2),a[i]和a[i+1]至少選乙個數,求能選出的最小和.

其中 1 <= n <= 100000, 1 <= a[i] <= 1000

例1:a = ,答案為4.

例2:a = ,答案為5.

假設陣列的最後乙個元素時必須選擇的。則當陣列只有乙個元素時,選擇的是第乙個元素,陣列只有兩個元素時,選擇的是第二個元素。陣列元素數量大於兩個時,每次選擇的是最後乙個元素加上前面元素的最小值,或者加上前面的前面元素的最小值,取這兩個值的最小值即可。**如下:

#include 

#include

using

namespace

std;

class solution

for (int i = 2; i < size; i++)

if (size == 1)

else

}};

演算法(三十二)

1 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點保留乙個,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 private static listnode fun2 listnode head temp temp.next res.next te...

演算法期中1005 最小和

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是給出的數...

演算法期中 最小和

從數列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...