1. 程式人生 > >901. 股票價格跨度

901. 股票價格跨度

編寫一個 StockSpanner 類,它收集某些股票的每日報價,並返回該股票當日價格的跨度。

今天股票價格的跨度被定義為股票價格小於或等於今天價格的最大連續日數(從今天開始往回數,包括今天)。

例如,如果未來7天股票的價格是 [100, 80, 60, 70, 60, 75, 85],那麼股票跨度將是 [1, 1, 1, 2, 1, 4, 6]

示例:

輸入:["StockSpanner","next","next","next","next","next","next","next"], [[],[100],[80],[60],[70],[60],[75],[85]]
輸出:[null,1,1,1,2,1,4,6]
解釋:
首先,初始化 S = StockSpanner(),然後:
S.next(100) 被呼叫並返回 1,
S.next(80) 被呼叫並返回 1,
S.next(60) 被呼叫並返回 1,
S.next(70) 被呼叫並返回 2,
S.next(60) 被呼叫並返回 1,
S.next(75) 被呼叫並返回 4,
S.next(85) 被呼叫並返回 6。

注意 (例如) S.next(75) 返回 4,因為截至今天的最後 4 個價格
(包括今天的價格 75) 小於或等於今天的價格。

提示:

  1. 呼叫 StockSpanner.next(int price) 時,將有 1 <= price <= 10^5
  2. 每個測試用例最多可以呼叫  10000StockSpanner.next
  3. 在所有測試用例中,最多呼叫 150000 次 StockSpanner.next
  4. 此問題的總時間限制減少了 50%。

分析:維護一個單調(遞減)棧,棧中元素為股票跨度中的最大元素

時間複雜度:O(N),N為呼叫次數 為呼叫次數, 空間複雜度為:O(N)

// const int MAX_PRICE = 1e5 + 5;
// const int MAX_INVOKING_NUM = 1e5 + 5;
struct stock {
    int price;
    int span;
    stock(int _price, int _span):price(_price), span(_span){};
};

class StockSpanner {
stack<stock> ss;
public:
    StockSpanner() {
        
    }
    
    int next(int price) {
        //棧空和非空的情況合併在一起,程式碼更為簡潔
        int span = 1;
        while(!ss.empty() && ss.top().price <= price) {
            span += ss.top().span;
            ss.pop();
        }
        ss.push(stock(price, span));
        return ss.top().span;
    }
};

/**
 * Your StockSpanner object will be instantiated and called as such:
 * StockSpanner obj = new StockSpanner();
 * int param_1 = obj.next(price);
 */

相關推薦

901. 股票價格跨度

編寫一個 StockSpanner 類,它收集某些股票的每日報價,並返回該股票當日價格的跨度。 今天股票價格的跨度被定義為股票價格小於或等於今天價格的最大連續日數(從今天開始往回數,包括今天)。

leetcode 901. 股票價格跨度

編寫一個 StockSpanner 類,它收集某些股票的每日報價,並返回該股票當日價格的跨度。 今天股票價格的跨度被定義為股票價格小於或等於今天價格的最大連續日數(從今天開始往回數,包括今天)。 例如,如果未來7天股票的價格是 [100, 80, 60, 70, 60,

hiho 1604 - 股票價格,思維題

namespace 價格 algorithm nbsp set 關註 i++ ref -- 題目鏈接 題目大意 小Hi最近在關註股票,為了計算股票可能的盈利,他獲取了一只股票最近N天的價格A1~AN。 在小Hi的策略中,每天可以在下列三種操作中選取一種: 1.什麽也不做;

返回股票價格變化程度top k的股票

iter queue more ood rgs args har request blocking 第二題:有一個數據流持續的讀入以下數據:stock,price. 每天早上都是從empty開始讀入數據設計一個application,能始終返回股票價格變化程度top k的股

NumPy學習筆記 三 股票價格

... average col color adt 數據分析 enter 圖片 數理統計 NumPy學習筆記 三 股票價格 《NumPy學習筆記》系列將記錄學習NumPy過程中的動手筆記,前期的參考書是《Python數據分析基礎教程 NumPy學習指南》第二版、《數學分析》

python用線性迴歸預測股票價格

線性迴歸在整個財務中廣泛應用於眾多應用程式中。在之前的教程中,我們使用普通最小二乘法(OLS)計算了公司的beta與相對索引的比較。現在,我們將使用線性迴歸來估計股票價格。 線性迴歸是一種用於模擬因變數(y)和自變數(x)之間關係的方法。通過簡單的線性迴歸,只有一個自變數x

呼叫sina財經api獲取實時股票價格

import tushare as ts import requests import time start = time.time() #呼叫新浪api content=requests.get('http://hq.sinajs.cn/?format=json&list=sh60

有趣的應用 | 使用RNN預測股票價格系列一

import osimport pandas as pdimport pprintimport tensorflow as tfimport tensorflow.contrib.slim as slim from data_model import StockDataSetfrom model_rnn im

Python 實現終端實時獲取股票價格

__author__ = 'felix' # 原作者為 felix import requests # requests 用於爬取新浪股票 API import time import sys # sys 用於在直譯器中互動 import threading # threading 用於多執行緒處理

股票價格指數+加權

計算指數編輯 計算股價平均數或指數時經常考慮以下四點: (1)樣本股票必須具有典型性、普通性,為此,選擇樣本應綜合考慮其行業分佈、市場影響力、股票等級、適當數量等因素。 (2)計算方法應具有高度的適應性,能對不斷變化的股市行情作出相應的 股票價格指數 調整或修正,使股票指數或平均數有較好的敏感性

python 股票價格預測(以中興通訊為例)

Python 股票價格預測(以中興通訊為例) 程式碼塊 程式碼塊語法遵循標準markdown程式碼,例如: import pandas as pd import tushare as ts begin_time = '2018-06-08' e

offer收割程式設計賽34(股票價格3)

時間限制:10000ms 單點時限:1000ms 記憶體限制:256MB 描述 小Hi最近在關注股票,為了計算股票可能的盈利,他獲取了一隻股票最近N天的價格A1~AN。   小Hi想知道,對於第i天的股票價格Ai,幾天之後股價會第一次超過Ai。   假設A=[6

中國石油的股票程式碼和發行日期,中國石油股票申購, 中國石油股票價格

上海證券交易所副總經理劉嘯東9月7日說,上交所正在積極籌備中國石油天然氣股份有限公司的迴歸上市,預計這個中國最大的一家海外上市企業有望在年內於中國A股市場上市發行。   9月7日劉嘯東在接受新華社記者採訪時說,上交所目前正在就中國石油有限公司在A股上市進行準備。   中國

深度有趣 | 10 股票價格預測

簡介 股票價格預測是一件非常唬人的事情,但如果只基於歷史資料進行預測,顯然完全不靠譜 股票價格是典型的時間序列資料(簡稱時序資料),會受到經濟環境、政府政策、人為操作多種複雜因素的影響 不像氣象資料那樣具備明顯的時間和季節性模式,例如一天之內和一年之內的氣溫變化

VBA 根據股票代碼查詢價格

vba 網頁數據 未實現定時刷新 Sub 抓取股票價格() On Error Resume Next Set regx = CreateObject("vbscript.regexp") ‘ regx.Global = True regx.Pattern = "\[""(.*)"",""(.*)"",

資料分析之股票市場價格分析

1.如何從網際網路上尋找資料 資料獲取通常分為兩種: 第一種:主動獲取。我們有很多種方式去網際網路上獲取我們想要的資料。常用的就是爬蟲。(例如:http://github.com/xiaopeng163/bili-spider,就是一哥們寫的爬蟲專案。爬取 B站全站視訊資訊) 第二種:被動方式

用pyhton爬蟲技術爬取所有股票的每週價格

前言 目前有越來越多的基金,無論是公募或私募,都在使用量化交易。未來10年,人工智慧將出現在越來越多的投資交易中,不以人工智慧為核心的投資平臺將很難生存。量化交易的核心在於資料。今天我們就利用python爬蟲技術爬取上交所所有股票的歷史每週價格,以備分析。 找到資料來

adjusted closing price股票的調整後價格

Getsymbols從雅虎拿到的股票資料有6列, XLF.Open XLF.High  XLF.Low XLF.Close XLF.Volume XLF.Adjusted其中比較tricky的就是Adjusted。網上找到的內容很多,但是都不太細緻全面,對於非金融專業的人來說

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

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

給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多只允許完成一筆交易(即買入和賣出一支股票),設計一個算法來計算你所能獲取的最大利潤。

pan stat 給定 arr 註意 turn 大於 交易 nbsp 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多只允許完成一筆交易(即買入和賣出一支股票),設計一個算法來計算你所能獲取的最大利潤。 註意你不能在買入股票前賣出股票。 示例 1