參考:
題目:給定乙個陣列a,求出一些數,使得每個元素在陣列a裡兩兩不相鄰,並且和最大。
選擇第i個元素,那麼第i-1個元素一定不能選
不選擇第i個元素,那麼第二個元素既可以選,也可以不選
#includeusing namespace std;
int main();
int selected[8];
int notselected[8];
selected[0] = input[0];
notselected[0]=0;
for(int i = 1; i < 8; i++)
for(int i = 0; i < 8;i++){
cout《或者
f[0] = max (0, input[0])
f[1] = max (input[1], f[0])
f[n] = max (f[n-2]+input[n], f[n-1])
元素互不相鄰的最大和子陣列
對於乙個給定的陣列,在其中選取其子陣列,要求相鄰的元素不能選取,且要保證選出的子陣列元素和最大。輸入陣列長度及其元素,輸出所選子陣列的和。測試輸入 7 4 2 6 1 3 5 8 測試輸出 21dp i 代表到截至第i項的最大和 可能不包括第i項 分析 對於任何乙個dp問題,其都牽扯到選與不選某個元...
陣列不相鄰元素之和的最大值
今天下午面試老虎 被問到這題,當時腦子有點蒙,沒寫出來。這題的意思就是給你乙個陣列,讓你計算元素的和,但是這些元素都不能相鄰,求最大的和。其實這題很常見,在leetcode上面也有,但是原題是這樣的 假設你是乙個專業的竊賊,準備沿著一條街打劫房屋。每個房子都存放著特定金額的錢。你面臨的唯一約束條件是...
環形陣列求最大子陣列和
陣列是環形的,即首尾相接 下標n 1的元素後面的元素下標為0 求最大子陣列和 環形陣列求最大子陣列和 解法一 把該環形陣列從某一點展開,連寫兩遍 複製乙份接到自己後面 然後當成無環的陣列求最大子陣列和,但這裡要限制乙個條件,就是最大子陣列的長度不可以超過n,所以求的時候要注意判斷。例如 上圖中展開寫...