摘要:注意你不能在買(mǎi)入股票前賣(mài)出股票。示例輸入輸出解釋在這種情況下沒(méi)有交易完成所以最大利潤(rùn)為。解答這里要注意的一點(diǎn)就是不能直接求出最大的和最小的然后相減得出結(jié)果,因?yàn)橘I(mǎi)和賣(mài)是由順序關(guān)系的,買(mǎi)必須在賣(mài)之前,代碼如下
發(fā)布自Kindem的博客,歡迎大家轉(zhuǎn)載,但是要注意注明出處題目
給定一個(gè)數(shù)組,它的第 i 個(gè)元素是一支給定股票第 i 天的價(jià)格。
如果你最多只允許完成一筆交易(即買(mǎi)入和賣(mài)出一支股票),設(shè)計(jì)一個(gè)算法來(lái)計(jì)算你所能獲取的最大利潤(rùn)。
注意你不能在買(mǎi)入股票前賣(mài)出股票。
示例 1:
輸入: [7,1,5,3,6,4] 輸出: 5 解釋: 在第 2 天(股票價(jià)格 = 1)的時(shí)候買(mǎi)入,在第 5 天(股票價(jià)格 = 6)的時(shí)候賣(mài)出,最大利潤(rùn) = 6-1 = 5 。 注意利潤(rùn)不能是 7-1 = 6, 因?yàn)橘u(mài)出價(jià)格需要大于買(mǎi)入價(jià)格。
示例 2:
輸入: [7,6,4,3,1] 輸出: 0 解釋: 在這種情況下, 沒(méi)有交易完成, 所以最大利潤(rùn)為 0。解答
這里要注意的一點(diǎn)就是不能直接求出最大的和最小的然后相減得出結(jié)果,因?yàn)橘I(mǎi)和賣(mài)是由順序關(guān)系的,買(mǎi)必須在賣(mài)之前,JavaScript代碼如下:
/** * @param {number[]} prices * @return {number} */ let maxProfit = (prices) => { let ans = 0; for (let i = 0 ; i < prices.length; i++) { let arr = []; for (let j = i + 1; j < prices.length; j++) arr.push(prices[j] - prices[i]); let max = 0; for (let j = 0; j < arr.length; j++) if (arr[j] > max) max = arr[j]; ans = max > ans ? max : ans; } return ans; };
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/96458.html
121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (i.e., buy on...
摘要:分析因?yàn)楫?dāng)前日期買(mǎi)賣(mài)股票會(huì)受到之前日期買(mǎi)賣(mài)股票行為的影響,首先考慮到用解決。所以我們可以用兩個(gè)數(shù)組分別記錄當(dāng)前持股跟未持股的狀態(tài)。 Best Time to Buy and Sell Stock with Cooldown Say you have an array for which the ith element is the price of a given stock on ...
摘要:示例輸入輸出解釋對(duì)應(yīng)的交易狀態(tài)為買(mǎi)入賣(mài)出冷凍期買(mǎi)入賣(mài)出思路這道題使用動(dòng)態(tài)規(guī)劃。狀態(tài)表示當(dāng)天休息能夠獲得的最大價(jià)值,表示當(dāng)天持有股票能夠獲得的最大價(jià)值,表示當(dāng)天持有股票能夠獲得的最大價(jià)值。 Description Say you have an array for which the ith element is the price of a given stock on day i. ...
摘要:題目鏈接來(lái)解,要用兩個(gè)分別表示現(xiàn)在的操作是還是,優(yōu)化空間用滾動(dòng)數(shù)組,或者幾個(gè) 309. Best Time to Buy and Sell Stock with Cooldown 題目鏈接:https://leetcode.com/problems... dp來(lái)解,要用兩個(gè)dp array分別表示現(xiàn)在的操作是buy還是sell,優(yōu)化空間用滾動(dòng)數(shù)組,或者幾個(gè)int public clas...
摘要:關(guān)鍵字,,算法,,動(dòng)態(tài)規(guī)劃,上關(guān)于主題的題目有四個(gè)這四個(gè)題目難度依次遞增。其中第四個(gè)問(wèn)題是尋求一個(gè)通解,在給定和最大買(mǎi)賣(mài)次數(shù)的情況下,求最大收益。首先大致的解題方向是動(dòng)態(tài)規(guī)劃,這個(gè)應(yīng)該不難想到。之后就是怎么找到狀態(tài),怎么列狀態(tài)轉(zhuǎn)移方程。 關(guān)鍵字:leetcode,Best Time To Buy And Sell Stock,算法,algorithm,動(dòng)態(tài)規(guī)劃,dynamic prog...
閱讀 1121·2021-09-22 16:04
閱讀 1499·2019-08-30 15:43
閱讀 1109·2019-08-29 14:01
閱讀 3444·2019-08-26 12:19
閱讀 3359·2019-08-26 12:15
閱讀 1452·2019-08-26 12:13
閱讀 3270·2019-08-23 17:00
閱讀 1490·2019-08-23 15:38