成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Leetcode188. Best Time to Buy and Sell Stock IV

pingink / 2924人閱讀

摘要:題目要求有一個(gè)整數(shù)數(shù)組,每一位上的值代表那一天的股票價(jià)格?,F(xiàn)在假設(shè)最多能夠進(jìn)行次交易,問(wèn)最大的收入是多少思路和代碼這里采用了動(dòng)態(tài)編程的思想。

題目要求
Say you have an array for which the ith element is the price of a given stock on day i.

Design an algorithm to find the maximum profit. You may complete at most k transactions.

Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

有一個(gè)整數(shù)數(shù)組,每一位上的值代表那一天的股票價(jià)格?,F(xiàn)在假設(shè)最多能夠進(jìn)行k次交易,問(wèn)最大的收入是多少?

思路和代碼

這里采用了動(dòng)態(tài)編程的思想。假設(shè)我們希望得到第j天最多進(jìn)行i次交易的最大利潤(rùn),我們首先想到的是,可以通過(guò)比較第j-1天最多進(jìn)行i次交易的利潤(rùn),以及第j-1天進(jìn)行i-1次交易然后最后一次交易為賣(mài)出當(dāng)天的股票所帶來(lái)的利潤(rùn)。

但是這里存在一個(gè)問(wèn)題,也就是說(shuō),如果第j-1天進(jìn)行的第i-1次交易剛好為賣(mài)出第j-1天的股票,而我們不能在這個(gè)數(shù)據(jù)上直接加上在第j天出售股票所獲得的利潤(rùn),因?yàn)槲覀冊(cè)趈-1天根本就沒(méi)有購(gòu)入股票!所以我們需要在j-1天進(jìn)行i-1次交易獲得最大利潤(rùn)的基礎(chǔ)上減去第j天的股票代表我們買(mǎi)入了第j天的股票,從而用于下一輪的計(jì)算。

public int maxProfit(int k, int[] prices) {
        int len = prices.length;
        if (k >= len / 2) return quickSolve(prices);
        
        int[][] t = new int[k + 1][len];
        for (int i = 1; i <= k; i++) {
            int tmpMax =  -prices[0];
            for (int j = 1; j < len; j++) {
                t[i][j] = Math.max(t[i][j - 1], prices[j] + tmpMax);
                tmpMax =  Math.max(tmpMax, t[i - 1][j - 1] - prices[j]);
            }
        }
        return t[k][len - 1];
    }
    

    private int quickSolve(int[] prices) {
        int len = prices.length, profit = 0;
        for (int i = 1; i < len; i++)
            // as long as there is a price gap, we gain a profit.
            if (prices[i] > prices[i - 1]) profit += prices[i] - prices[i - 1];
        return profit;
    }


想要了解更多開(kāi)發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68551.html

相關(guān)文章

  • [Leetcode] Best Time to Buy and Sell Stock 買(mǎi)賣(mài)股票的最佳

    摘要:雙指針?lè)◤?fù)雜度時(shí)間空間思路根據(jù)買(mǎi)賣(mài)股票的特性,我們必須先低價(jià)買(mǎi),再高價(jià)賣(mài),這個(gè)找最大收益的過(guò)程實(shí)際上是找到目前為之的最低價(jià)。我們可以利用這個(gè)之前計(jì)算的結(jié)果降低時(shí)間復(fù)雜度不過(guò)代價(jià)是額外空間,所以需要把到的最大收益存在數(shù)組中。 Best Time to Buy and Sell Stock I Say you have an array for which the ith element...

    nanchen2251 評(píng)論0 收藏0
  • [LeetCode]Best Time to Buy and Sell Stock with Coo

    摘要:分析因?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 ...

    xcc3641 評(píng)論0 收藏0
  • LeetCode 309. Best Time to Buy and Sell Stock with

    摘要:示例輸入輸出解釋對(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. ...

    劉明 評(píng)論0 收藏0
  • Best Time To Buy And Sell Stock 買(mǎi)賣(mài)股票最佳時(shí)機(jī)

    摘要:關(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...

    elliott_hu 評(píng)論0 收藏0
  • leetcode 121 Best Time to Buy and Sell Stock

    摘要:求可能的最大利潤(rùn)題目給了兩個(gè)例子最大利潤(rùn)就是進(jìn)價(jià)為,賣(mài)價(jià)為的時(shí)候,利潤(rùn)為在這個(gè)案例中,進(jìn)價(jià)一直高于售價(jià),所以無(wú)法成交,返回。主要注意一下,先買(mǎi)入才能賣(mài)出賣(mài)價(jià)一定要比買(mǎi)入價(jià)格高才能成交就可以了。 題目詳情 Say you have an array for which the ith element is the price of a given stock on day i.If yo...

    QLQ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<