zoukankan      html  css  js  c++  java
  • G面经: Design Stock Price Display System

    Implement a simple stock price display systemwhich will show High, Low and Last price for a given stock throughout one day.The data comes from a real-time feed and have the following messages:
    PriceUpdate(t, P) -> Price of Stock A at timet is P.
    Correction(t, NewP) -> Price of Stock A attime t is rectified to NewP
    Remove(t) -> Disregard the price feedreceived at time t.
    PriceUpdate(10100,850.50) -> high = 850.50, Low = 850.50, Last = 850.50
    PriceUpdate(10200,852.25) -> high = 852.25, Low = 850.50, Last = 852.25
    PriceUpdate(10300,848.00) -> high = 852.25, Low = 848.00, Last = 848.00
    Correction(10200, 849.00) -> high = 850.50, Low = 848.00, Last 848.00
    PriceUpdate(10400,855.00)  -> high = 855.00, Low = 848.00, Last = 855.00
    Correction(10300, 853.00) -> high = 855.00, Low = 850.50, Last = 855.00
    PriceUpdate(10500,854.00) -> high = 855.00, Low = 848.00, Last = 854.00
    Correction(10500,853.25) -> high = 855.00, Low = 848.00, Last = 853.25
    Remove(10300) -> high = 855.00, Low = 849.00, Last = 853.25
    
    简单说来PriceUpdate就是添加新的(timestamp, price), Correction是改之前的(timestamp, price), 求实现当前high(), low(), last()
    简单说来PriceUpdate就是添加新的(timestamp, price), Correction是改之前的(timestamp, price), 求实现当前high(), low(), last()
    LZ是用的Heap + HashMap, 特别问了时间复杂度(我猜到他想考heap的remove(obj)复杂度)
    follow Up是: 有没有办法把复杂度降到O(logN)
     
    LZ是用的Heap + HashMap, 特别问了时间复杂度(我猜到他想考heap的remove(obj)复杂度)
    LZ是用treeMap代替了Heap,这样代价是每次找high,low也要logN search整个tree了
     
    感觉需要2个数据结构:
    1. TreeMap<Long, Double> time2priceMap
    2. TreeMap<Double, Integer> price2countMap

    priceupdate: insert new record into time2priceMap, update price count in price2countmap
    correction: update record in time2pricemap, update prev price count, update prev price count (if 0, remove record), update new price count or needs to insert a new price record into price2countmap
    high and low: lastkey and firstkey from price2countmap
    last: last entry's price from time2pricemap

    补充内容 (2017-2-4 07:00):
    这样好像都是O(log(n))
  • 相关阅读:
    C# WebClient 使用http免费代理
    C#中给WebClient添加代理Proxy
    浅谈C#实现Web代理服务器的几大步骤
    Visual Studio 2017各版本安装包离线下载、安装全解析
    C# HttpClient, 使用C#操作Web
    ROS学习之 tab补全错误
    ROS学习之group标签
    ROS学习之CMakeLists.txt
    ROS学习之包的概念
    ROS学习之package.xml
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/6369029.html
Copyright © 2011-2022 走看看