目錄標題
- 導讀
- 21天動態規劃入門
- 面試題
- 資料領取
導讀

肥友們為了更好的去幫助新同學適應演算法和面試題,最近我們開始進行專項突擊一步一步來,我們先來搞一下讓大家最頭疼的一類演算法題,動態規劃我們將進行為時21天的養成計劃,還在等什么快來一起肥學進行動態規劃21天挑戰吧!!
21天動態規劃入門
給定一個陣列 prices ,其中 prices[i] 是一支給定股票第 i 天的價格,
設計一個演算法來計算你所能獲取的最大利潤,你可以盡可能地完成更多的交易(多次買賣一支股票),
注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票),
示例 1:
輸入: prices = [7,1,5,3,6,4]
輸出: 7
解釋: 在第 2 天(股票價格 = 1)的時候買入,在第 3 天(股票價格 = 5)的時候賣出, 這筆交易所能獲得利潤 = 5-1 = 4 ,
隨后,在第 4 天(股票價格 = 3)的時候買入,在第 5 天(股票價格 = 6)的時候賣出, 這筆交易所能獲得利潤 = 6-3 = 3 ,
示例 2:
輸入: prices = [1,2,3,4,5]
輸出: 4
解釋: 在第 1 天(股票價格 = 1)的時候買入,在第 5 天 (股票價格 = 5)的時候賣出, 這筆交易所能獲得利潤 = 5-1 = 4 ,
注意你不能在第 1 天和第 2 天接連購買股票,之后再將它們賣出,因為這樣屬于同時參與了多筆交易,你必須在再次購買前出售掉之前的股票,
示例 3:
輸入: prices = [7,6,4,3,1]
輸出: 0
解釋: 在這種情況下, 沒有交易完成, 所以最大利潤為 0,
class Solution {
public int maxProfit(int[] prices) {
int sumValue=0;
for(int i=1;i<prices.length;i++){
if(prices[i]>prices[i-1]){
sumValue=sumValue+prices[i]-prices[i-1];
}
}
return sumValue;
}
}
給定一個整數陣列,其中第 i 個元素代表了第 i 天的股票價格 ,?
設計一個演算法計算出最大利潤,在滿足以下約束條件下,你可以盡可能地完成更多的交易(多次買賣一支股票):
你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票),
賣出股票后,你無法在第二天買入股票 (即冷凍期為 1 天),
示例:
輸入: [1,2,3,0,2]
輸出: 3
解釋: 對應的交易狀態為: [買入, 賣出, 冷凍期, 買入, 賣出]
注意:
// f[i][0]: 手上持有股票的最大收益
// f[i][1]: 手上不持有股票,并且處于冷凍期中的累計最大收益
// f[i][2]: 手上不持有股票,并且不在冷凍期中的累計最大收益
class Solution {
public int maxProfit(int[] prices) {
if (prices.length == 0) {
return 0;
}
int n = prices.length;
int[][] f = new int[n][3];
f[0][0] = -prices[0];
for (int i = 1; i < n; ++i) {
f[i][0] = Math.max(f[i - 1][0], f[i - 1][2] - prices[i]);
f[i][1] = f[i - 1][0] + prices[i];
f[i][2] = Math.max(f[i - 1][1], f[i - 1][2]);
}
return Math.max(f[n - 1][1], f[n - 1][2]);
}
}
面試題
書接上回:Linux文本處理命令
12. grep 命令
(分析一行的資訊,若當中有我們所需要的資訊,就將該行顯示出來,該命令通常與管道命令一起使用,用于對一些命令的輸出進行篩選加工等等)
grep Aug /var/log/messages 在檔案 '/var/log/messages'中查找關鍵詞"Aug"
grep ^Aug /var/log/messages 在檔案 '/var/log/messages'中查找以"Aug"開始的詞匯
grep [0-9] /var/log/messages 選擇 '/var/log/messages' 檔案中所有包含數字的行
grep Aug -R /var/log/* 在目錄 '/var/log' 及隨后的目錄中搜索字串"Aug"
sed 's/stringa1/stringa2/g' example.txt 將example.txt檔案中的 "string1" 替換成 "string2"
sed '/^$/d' example.txt 從example.txt檔案中洗掉所有空白行
特別介紹
📣小白練手專欄,適合剛入手的新人歡迎訂閱編程小白進階
📣python有趣練手專案里面包括了像《機器人尬聊》《惡搞程式》這樣的有趣文章,可以讓你快樂學python練手專案專欄
📣另外想學JavaWeb進廠的同學可以看看這個專欄:傳送們
📣這是個面試和考研的演算法練習我們一起加油上岸之路
資料領取
這里有python,Java學習資料還有有有趣好玩的編程專案,更有難尋的各種資源,反正看看也不虧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351042.html
標籤:其他
上一篇:“世界首臺USB-C iPhone”被拍賣,目前出價63萬人民幣
下一篇:第一天打卡—線性規劃(1)
