1. 程式人生 > >在股市的交易日中,假設最多可進行兩次買賣(即買和賣的次數均小於等於2),規則是必須一筆成交後進行另一筆(即買-賣-買-賣的順序進行)。給出一天中的股票變化序列,請寫一個程式計算一天可以獲得的最大收益。

在股市的交易日中,假設最多可進行兩次買賣(即買和賣的次數均小於等於2),規則是必須一筆成交後進行另一筆(即買-賣-買-賣的順序進行)。給出一天中的股票變化序列,請寫一個程式計算一天可以獲得的最大收益。


思想來源於動態規劃,如果以arr[i]為第二個投資點,那麼,必須找到i-1前面的最大投資收益

class Stock {
public:
    int maxProfit(vector<int> prices, int n) {
        // write code here
        int max=0;
        int peakBeaseBefore,peakBeaseAfter;
        for(int i=0;i<n;i++)
            {
            	peakBeaseBefore=0;peakBeaseAfter=0;
            	for(int j=0;j<i;j++)
                    {
                    	for(int m=0;m<j;m++)
                            {
                            	if((prices[j]-prices[m])>peakBeaseBefore)
                                    {
                                    	peakBeaseBefore=prices[j]-prices[m];
                                	}
                        	}
                    
                	}
            	for(int k=i+1;k<n;k++)
                    {
                    	if((prices[k]-prices[i])>peakBeaseAfter)
                            {
                            	peakBeaseAfter=prices[k]-prices[i];
                        	}
                	}
            	if((peakBeaseBefore+peakBeaseAfter)>max)
                   {
                       max=peakBeaseBefore+peakBeaseAfter;
                   }
        	}
           return max;
	}
};


相關推薦

已知長度為n的線性表A採用順序儲存結構一個時間複雜度為O(n)、空間複雜度為O(1)的演算法該演算法刪除線性表所有值為item的資料元素

語言:C++ #include <iostream> using namespace std; typedef int ElemType; //定義 #define MAXSIZE 100 typedef struct {ElemType *elem; int length;}Sq

Best Time to Buy and Sell Stock III 最佳時間買入股票買賣)@LeetCode

轉載:https://blog.csdn.net/fightforyourdream/article/details/14503469 題目: 最佳時間買入賣出股票:你有一個數組儲存了股票在第i天的價錢,現在你最多進行兩次買賣,但同一時間你手上只能保持一個股票,如何賺的最多 思路:

Java:假設車庫有3個車位(可以通過boolean[]陣列來表示車庫)可以停車一個程式模擬個使用者開車離開停車入庫的效果注意:車位有車時不能停車

假設車庫有3個車位(可以通過boolean[]陣列來表示車庫)可以停車,寫一個程式模擬多個使用者開車離開,停車入庫的效果。注意:車位有車時不能停車。 1)使用阻塞佇列來實現(BlockingQueue<T>) Producer類 package com.多執行緒停車問

說你有個數組其中第i個元素是第i給定股票的價格設計一個演算法來找到的利潤可以完成個交易

用四個變數來表示倆次交易的買入賣出,遍歷陣列,比較每次交易的利益,儲存最大的。 int maxProfit(vector<int> &prices) { int len=prices.size(); if(len

公共汽車一個程式告訴司機怎麼走能接到的乘客

【問題描述】 一個城市的道路成了像棋盤那樣的網狀,南北向的路有n條,並由西向東從1標記到n,東西向的路有m條,並從南向北從1標記到m,每一個交叉點代表一個路口,有的路口有正在等車的乘客。一輛公共汽車將從(1,1)點駛到(n,m)點,車只能向東或者向北開. 寫一個程式,告訴司

設計一個演算法,將維陣列A(下標從1開始)的元素迴圈右移k位要求只用一個元素大小的附加儲存空間演算法的時間複雜度

程式碼 #include<stdio.h> #include<stdlib.h> #define n 10 int main() { int a[n] = { 0,1,2,3,4,5,6,7,8,9 }; int k, t=0,i,j,m; printf(

MongoDB資料庫建立多少集合?

預設情況下,MongoDB 的每個資料庫的名稱空間儲存在一個 16MB 的 .ns 檔案中,平均每個命名佔用約 628 位元組,也即整個資料庫的名稱空間的上限約為 24000。 每一個集合、索引都將佔用

陣列有三個數只出現其它的數恰好出現這三個數

具體的題意如題 當我第一次碰到這類題的時候是宿舍的舍友分享的,當時他說的問題還要簡單一些,具體的題意是"陣列中只有一個數只出現一次,其它的數恰好出現兩次,找出這個數。"  當時我的第一感覺就是要用到快排,因此得出第一種演算法,將陣列進行快排的第一層排序,然後從中間分開,數字

網易筆試程式設計題:放蛋糕數(C++)

題目: 二貨小易有一個W*H的網格盒子,網格的行編號為0~H-1,網格的列編號為0~W-1。每個格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。 對於兩個格子座標(x1,y1

SQL Server 存多少列!

SQL   Server   的每個資料庫最多可儲存   20   億個表,每個表可以有   1024   列。表的行數及總大小僅受可用儲存空間的限制。每行最多可以儲存   8,060   位元組。如果建立具有   varchar、nvarchar   或   varbina

MySql、Oracle(通用方法)遞迴查詢生成檔案目錄樹(JAVA實現 遞迴過程不訪問資料庫遞迴之前只訪問 進行遞迴前資料準備)

查詢檔案樹 實體類 public class TradeInfoFile { ​ // 檔案編碼(子) private String fileCode; // 所屬檔案編碼(父) private String belongFileCode; // 交易

10元喝多少瓶啤酒?(不可借酒+借酒)

背景 《愛情公寓5》中有個劇情:每瓶啤酒2元,2個空酒瓶或4個瓶蓋可換1瓶啤酒。10元最多可喝多少瓶啤酒? 腦海模擬起來的確有點費勁。心算結果是15瓶,而劇情實踐居然是20瓶!結合彈幕說的酒吧可能可以借酒,故猜測借酒使最終喝了20瓶。 如果改變擁有的錢數或啤酒價格時,答案又是什麼呢? 此時,不禁想用程式設計的

使用類的靜態字段構造函數我們可以跟蹤某個類所創建對象的個數一個在任何時候都可以向它查詢“你已經創建了多少個對象?”

.com 使用 mage .cn time 多少 system number 字段 實驗源程序: //信1605-3 20163578 於丁一 package 可查詢你創建了多少對象; public class Zuoye { int number; public Zuoy

使用類的靜態字段構造函數我們可以跟蹤某個類所創建對象的個數一個在任何時候都可以向它查詢“你已經創建了多少個對象?

創建對象 跟蹤 bsp 使用 被調用 多少 對象 main 靜態 public class NumberOfObject{ public static int count=0; //使用靜態字段。 NumberOfObject(){count++;System.

使用類的靜態字段構造函數我們可以跟蹤某個類所創建對象的個數一個在任何時候都可以向它查詢“你已經創建了多少個對象?”

程序流程圖 既然 設計思想 程序 mage http new log any 一、設計思想:既然每次調用這個類的構造函數都要計算一次數量,那麽只需要在構造函數中放入一個用來計算創建次數的數值就行了,所以設定靜態int型數字n;然後在構造函數中加入n++; 二、程序流程圖:

JS控制只能輸入數字並且允許小數點

put fun indexof 代碼 pan ctype urn span cnblogs 直接上代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset

r語言如何進行組獨立樣本秩檢驗

itl ber rep dvd see 威爾 inf r語言 true 安裝所需的包 wants <- c("coin") has <- wants %in% rownames(installed.packages()) if(any(!has)) in

r語言如何進行組獨立樣本秩檢驗2

相同 使用 兩個 htm spa 類型 def 同時 自動 如果兩個數據樣本來自不同的群體並且樣本不相互影響,則它們是獨立的。使用Mann-Whitney-Wilcoxon檢驗,我們可以確定種群分布是否相同而不假設它們遵循正態分布。 例 在數據集mtcars的數據框列