程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Leetcode:best_time_to_buy_and_sell_stock_II題解

Leetcode:best_time_to_buy_and_sell_stock_II題解

編輯:C++入門知識

Leetcode:best_time_to_buy_and_sell_stock_II題解


一、題目

假設你有一個數組,它的第i個元素是一個股票在一天的價格。

設計一個算法,找出最大的利潤。

二、分析

如果當前值高於買入值,那麼就賣出,同時買入今天的股票,並獲利。如果當前值低於買入值,那麼就放棄之前的股票,同時買入今天的股票,以待升值,此時也不虧損。

舉例:

2 9 6 3 6 1

第1天,買入2;

第2天,9>2,賣出,獲利7,並買入9;

第3天,6<9,放棄9,買入6;

第4天,3<6,放棄6,買入3;

第5天,6>3,賣出,獲利3,並買入6;

第6天,1<6,放棄6,買入1,結束。

總獲利:7+3= 10。

需要注意的是在獲取數組的長度時,在vector不能使用length,而是size().


class Solution {
public:
    int maxProfit(vector &prices) {
        int length = prices.size();
        if(length==0) return 0;
        int profit = 0;
        int flag,difference;
        for(flag=1;flag0)
        		profit+=difference;
        }
        return profit;
    }
};



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved