給定【2,4,7,8,7,10,5】這樣乙個序列,對於一件商品我們可以選擇【買】【賣】【放棄】三種操作。
但是必須按照【買】【賣】的順序進行。
問題描述:
不限定買賣次數,如何獲得最大收益,收益最大是多少;
只進行一次買賣,最大收益是多少;
只進行兩次買賣,最大收益是多少;
問題一
對陣列進行處理,令diff=nums[i]-nums[i-1];只要diff>0,便將其加到最終的結果即可;
2+3+1+3=9;即【2,8】【7,10】
**如下:
int maxsum(int *pnum, intlen)
}return
ret;
}
問題二
根據nums[i]-nums[i-1]重新生成乙個序列,只進行一次買賣相當於求新序列的最大連續子段和;
2+3+1+(-1)+3=8,即【2,10】
**如下:
int getdis(int a, intn)
else
maxdis =max(maxdis, dis);
}return
maxdis;
}
問題三
這裡介紹一下我的思路:在問題二的基礎上,新增一層迴圈,用來控制將序列分成兩部分。然後分別對左右部分進行問題二的操作,將兩部分的最大收益值相加作為整個序列的最大利益。
根據對區間的不同劃分,求出最大的利益;
6+3=9;即【2,8】【7,10】
由於**比較簡單,這裡不再詳述。
最大收益問題
time limit 2000ms memory limit 65536k 有疑問?點這裡 鐵牌狗最近迷上了一款遊戲,但鐵牌狗實在是太笨了,他還是要請求你的幫助。有乙個n行m 列的矩陣 a,矩陣 a中每個數字均為正整數,現在鐵牌狗要在其中選出乙個r行 c列的子矩陣 b,這個子矩陣 b中各個數字之和即...
Isap 最大收益問題
永樂理工大學的實驗室計畫了一系列實驗專案,這些實驗專案需要不同的實驗儀器,而配置儀器需要費用,但實驗也會產生經濟效益。請設計乙個演算法,如何才能有最大淨收益?模型歸納為二分圖匹配模型,假設實驗專案為e 儀器為,那麼假設配置儀器的費用使用ci表示,經濟收益用pi表示,那麼,我們利用二分圖實現該問題,首...
做專案的最大收益問題
給定兩個整數w和k,w代表你擁有的初始資金,k代表你最多可以做k個專案。再給定兩個長度為n的正數陣列costs和profits,代表一共有n個專案,costs i 和profits i 分別表示第i號專案的啟動資金與做完後的利潤 注意是利潤,如果乙個專案的啟動資金為10,利潤為4,代表該專案最終的收...