<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)122:買賣股票的最佳時機(jī) II

          共 1542字,需瀏覽 4分鐘

           ·

          2020-12-16 21:16

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做?買賣股票的最佳時機(jī) II,我們先來看題面:
          https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

          Say you have an array prices 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 as many transactions as you like (i.e., buy one and sell one share of the stock multiple times).


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

          題意


          給定一個數(shù)組,它的第 i 個元素是一支給定股票第 i 天的價格。

          設(shè)計一個算法來計算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。

          注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。

          樣例


          解題

          https://www.cnblogs.com/gzshan/p/11114182.html

          ?本題和上一題相比,唯一的區(qū)別是:這里對買賣次數(shù)沒有限制。


          這里我們可以采用貪心策略來解決:首先我們需要理解一點(diǎn),第i天買入,第j天賣出得到的收益和第i天買入,第i+p天賣出,第i+p天再買入,第j天賣出得到的收益是相同的。比如[1,2,3,4,5],很明顯我們知道最大收益是4,可以看作是第一天買入,第五天賣出,但是也可以看作是第1天買入,第二天賣出,同時買入,第三天又賣出,同時買入······

          理解了這一點(diǎn),我們就清楚這里為什么能用貪心的思想了,從第一天開始買入,只要有收益就可以直接賣出,接下來再買入,同樣一旦有收益就可以賣出,這是一種典型的貪心思想,局部最優(yōu)達(dá)到全局最優(yōu)。

          從代碼角度來說,我們只需要累加后一天和前一天的差(后一天大于前一天的情下)即可。

          public?int?maxProfit(int[] prices) {
          ????????//貪心法
          ????????if(prices==null?|| prices.length==0)
          ????????????return?0;
          ????????int?profit=0;
          ????????for(int?i=1;i????????????if(prices[i]>prices[i-1])
          ????????????????profit+=(prices[i]-prices[i-1]);
          ????????}
          ????????return?profit;
          ????}


          好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力。

          上期推文:

          LeetCode1-120題匯總,希望對你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)121:買賣股票的最佳時機(jī)


          瀏覽 54
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www插插插无码视频 | 亚洲天堂在线官网 | 免费看黄色片国产馆 | 99爱视频 | 豆花视频入口www |