付費限定

用 單調棧 來解 最近幾日股價的高點 Online Stock Span_Leetcode #901精選75題

更新於 發佈於 閱讀時間約 6 分鐘

題目敘述

題目會給我們一個StockSpanner類別,
還有對應的建構子和function: int next( int price)介面。

next(int price)呼叫的時後回傳入當天的股票價格,要求我們計算price這個價格是過去k天以來的最高價,返回k值。

舉例來說:

若股價分別是[70, 50, 60]

則分別回傳1, 1, 2

70是過去一天以來{70}的最高價

50是過去一天以來{50}的最高價

60是過去兩天以來{50, 60}的最高價


題目的原文敘述


測試範例

Example 1:

Input
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
Output
[null, 1, 1, 1, 2, 1, 4, 6]

Explanation
StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // return 1
stockSpanner.next(80); // return 1
stockSpanner.next(60); // return 1
stockSpanner.next(70); // return 2
stockSpanner.next(60); // return 1
stockSpanner.next(75); // return 4, because the last 4 prices (including today's price of 75) were less than or equal to today's price.
stockSpanner.next(85); // return 6

約束條件

Constraints:

  • 1 <= price <= 10^5

參數price介於1~十萬之間。

  • At most 10^4 calls will be made to next.

動態測試時,最多有一萬次next() function呼叫。


演算法 Monotone Stack 單調棧


其實這題和前一題 每日溫度變化 Daily Temperatures 有異曲同工之妙,前一題是找之後比較大的值(之後比較溫暖的日子)這題是找能覆蓋前k天以來的數值(相當於說,今天的股價,是k天以來的最高點),背後的本值都時一樣的,都是盡可能的擴張區間,直到條件滿足為止


維護一個遞減單調棧,每次呼叫next() function推入今天股價時,把前面比較小的價格都pop出來,並且趁機計算能夠覆蓋的天數k值最後再把k值回傳即可。


範例 + 示意圖

以行動支持創作者!付費即可解鎖
本篇內容共 2570 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
小松鼠-avatar-img
發文者
2024/05/29
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中)提及了這篇文章,趕快過去看看吧!
avatar-img
小松鼠的演算法樂園
95會員
427內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
2024/05/29
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
2024/05/29
Leetcode 精選75題 題目與題解 熱門考點 目錄 (持續更新中) 建議從左側目錄 或者 按Ctrl+F輸入關鍵字進行搜尋
Thumbnail
2024/05/10
輸入給定一個已經從小到大排序好,而且彼此互質的整數陣列, 請問任取兩數分別當作分子、分母,第k小的分數是多少? 輸出請以 [分子,分母] 的形式回傳答案。
Thumbnail
2024/05/10
輸入給定一個已經從小到大排序好,而且彼此互質的整數陣列, 請問任取兩數分別當作分子、分母,第k小的分數是多少? 輸出請以 [分子,分母] 的形式回傳答案。
Thumbnail
2024/04/15
這篇文章,會帶著大家複習以前學過的配對模型與Stack框架, 並且以括弧配對的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 首先,Stack本身具有Last-In First-Out 後進先出的特質。 再根據題目所需要的資訊利用Stack去儲存索引
Thumbnail
2024/04/15
這篇文章,會帶著大家複習以前學過的配對模型與Stack框架, 並且以括弧配對的應用題與概念為核心, 貫穿一些相關聯的題目,透過框架複現來幫助讀者理解這個演算法框架。 首先,Stack本身具有Last-In First-Out 後進先出的特質。 再根據題目所需要的資訊利用Stack去儲存索引
Thumbnail
看更多
你可能也想看
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
近期指標美股走勢觀察 當沖/隔日沖 個案分享與教學 自選股神基、波力、皇鼎漲停
Thumbnail
近期指標美股走勢觀察 當沖/隔日沖 個案分享與教學 自選股神基、波力、皇鼎漲停
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
大綱: 1.可能會遇到的問題 2.時間區間的漲跌幅報酬計算 (1)抓取歷史股價 (2)抓取特定日期的收盤價 (3)自動抓取最後一筆報價資料 (4)VLOOKUP欄位在抓取日期的問題 3.抓取年初跟今日報價計算累積報酬 4.歷史股價平均值計算 5.標準差的計算 6.波動度的比較
Thumbnail
大綱: 1.可能會遇到的問題 2.時間區間的漲跌幅報酬計算 (1)抓取歷史股價 (2)抓取特定日期的收盤價 (3)自動抓取最後一筆報價資料 (4)VLOOKUP欄位在抓取日期的問題 3.抓取年初跟今日報價計算累積報酬 4.歷史股價平均值計算 5.標準差的計算 6.波動度的比較
Thumbnail
在上一篇文章中,我們學會了如何繪製最新的分鐘圖,讓我們了解最新一日的個股股價變化,不過有時分鐘圖太過細小,並無法了解到個股整體的趨勢狀況,這時我們就必須要使用到日線圖,因此,今天我們就來學習如何繪製日線圖吧!!
Thumbnail
在上一篇文章中,我們學會了如何繪製最新的分鐘圖,讓我們了解最新一日的個股股價變化,不過有時分鐘圖太過細小,並無法了解到個股整體的趨勢狀況,這時我們就必須要使用到日線圖,因此,今天我們就來學習如何繪製日線圖吧!!
Thumbnail
股價是股票匯集各式因素所組成的視覺圖,因此今天我們就來學學如何畫製個股的最新分鐘圖,讓你能夠一鍵輕鬆看到當日最新股價走勢圖,我們就開始來教學吧!!
Thumbnail
股價是股票匯集各式因素所組成的視覺圖,因此今天我們就來學學如何畫製個股的最新分鐘圖,讓你能夠一鍵輕鬆看到當日最新股價走勢圖,我們就開始來教學吧!!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News