Leetcode.com 2021-07-11
🔴 295.find-median-from-data-stream
🏷️ Tags
#design #two_pointers #data_stream #sorting #heap_priority_queue
Description
The median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value and the median is the mean of the two middle values.
For example, for
For example, for
Implement the MedianFinder class:
Example
🔴 295.find-median-from-data-stream
🏷️ Tags
#design #two_pointers #data_stream #sorting #heap_priority_queue
Description
The median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value and the median is the mean of the two middle values.
For example, for
arr = [2,3,4], the median is 3.For example, for
arr = [2,3], the median is (2 + 3) / 2 = 2.5.Implement the MedianFinder class:
MedianFinder() initializes the MedianFinder object.void addNum(int num) adds the integer num from the data stream to the data structure.double findMedian() returns the median of all elements so far. Answers within 10-5 of the actual answer will be accepted.Example
Input
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"]
[[], [1], [2], [], [3], []]
Output
[null, null, null, 1.5, null, 2.0]
Explanation
MedianFinder medianFinder = new MedianFinder();
medianFinder.addNum(1); // arr = [1]
medianFinder.addNum(2); // arr = [1, 2]
medianFinder.findMedian(); // return 1.5 (i.e., (1 + 2) / 2)
medianFinder.addNum(3); // arr[1, 2, 3]
medianFinder.findMedian(); // return 2.0
Leetcode-cn.com 2021-08-27
🔴 295.find-median-from-data-stream
🏷️ Tags
#design #two_pointers #data_stream #sorting #heap_priority_queue
Description
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。
例如,
[2,3,4] 的中位数是 3
[2,3] 的中位数是 (2 + 3) / 2 = 2.5
设计一个支持以下两种操作的数据结构:
void addNum(int num) - 从数据流中添加一个整数到数据结构中。
double findMedian() - 返回目前所有元素的中位数。
undefined
🔴 295.find-median-from-data-stream
🏷️ Tags
#design #two_pointers #data_stream #sorting #heap_priority_queue
Description
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。
例如,
[2,3,4] 的中位数是 3
[2,3] 的中位数是 (2 + 3) / 2 = 2.5
设计一个支持以下两种操作的数据结构:
void addNum(int num) - 从数据流中添加一个整数到数据结构中。
double findMedian() - 返回目前所有元素的中位数。
undefined
Leetcode-cn.com 2022-01-23
🟡 2034.stock-price-fluctuation
🏷️ Tags
#design #hash_table #data_stream #ordered_set #heap_priority_queue
Description
给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳 和该时间点股票对应的 价格 。
不巧的是,由于股票市场内在的波动性,股票价格记录可能不是按时间顺序到来的。某些情况下,有的记录可能是错的。如果两个有相同时间戳的记录出现在数据流中,前一条记录视为错误记录,后出现的记录 更正 前一条错误的记录。
请你设计一个算法,实现:
更新 股票在某一时间戳的股票价格,如果有之前同一时间戳的价格,这一操作将 更正 之前的错误价格。
找到当前记录里 最新股票价格 。最新股票价格 定义为时间戳最晚的股票价格。
找到当前记录里股票的 最高价格 。
找到当前记录里股票的 最低价格 。
请你实现
Example
🟡 2034.stock-price-fluctuation
🏷️ Tags
#design #hash_table #data_stream #ordered_set #heap_priority_queue
Description
给你一支股票价格的数据流。数据流中每一条记录包含一个 时间戳 和该时间点股票对应的 价格 。
不巧的是,由于股票市场内在的波动性,股票价格记录可能不是按时间顺序到来的。某些情况下,有的记录可能是错的。如果两个有相同时间戳的记录出现在数据流中,前一条记录视为错误记录,后出现的记录 更正 前一条错误的记录。
请你设计一个算法,实现:
更新 股票在某一时间戳的股票价格,如果有之前同一时间戳的价格,这一操作将 更正 之前的错误价格。
找到当前记录里 最新股票价格 。最新股票价格 定义为时间戳最晚的股票价格。
找到当前记录里股票的 最高价格 。
找到当前记录里股票的 最低价格 。
请你实现
StockPrice 类:StockPrice() 初始化对象,当前无股票价格记录。void update(int timestamp, int price) 在时间点 timestamp 更新股票价格为 price 。int current() 返回股票 最新价格 。int maximum() 返回股票 最高价格 。int minimum() 返回股票 最低价格 。Example
输入:
["StockPrice", "update", "update", "current", "maximum", "update", "maximum", "update", "minimum"]
[[], [1, 10], [2, 5], [], [], [1, 3], [], [4, 2], []]
输出:
[null, null, null, 5, 10, null, 5, null, 2]
解释:
StockPrice stockPrice = new StockPrice();
stockPrice.update(1, 10); // 时间戳为 [1] ,对应的股票价格为 [10] 。
stockPrice.update(2, 5); // 时间戳为 [1,2] ,对应的股票价格为 [10,5] 。
stockPrice.current(); // 返回 5 ,最新时间戳为 2 ,对应价格为 5 。
stockPrice.maximum(); // 返回 10 ,最高价格的时间戳为 1 ,价格为 10 。
stockPrice.update(1, 3); // 之前时间戳为 1 的价格错误,价格更新为 3 。
// 时间戳为 [1,2] ,对应股票价格为 [3,5] 。
stockPrice.maximum(); // 返回 5 ,更正后最高价格为 5 。
stockPrice.update(4, 2); // 时间戳为 [1,2,4] ,对应价格为 [3,5,2] 。
stockPrice.minimum(); // 返回 2 ,最低价格时间戳为 4 ,价格为 2 。
Leetcode-cn.com 2022-05-06
🟢 933.number-of-recent-calls
🏷️ Tags
#design #queue #data_stream
Description
写一个
请你实现
保证 每次对
Example
🟢 933.number-of-recent-calls
🏷️ Tags
#design #queue #data_stream
Description
写一个
RecentCounter 类来计算特定时间范围内最近的请求。请你实现
RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对
ping 的调用都使用比之前更大的 t 值。Example
输入:
["RecentCounter", "ping", "ping", "ping", "ping"]
[[], [1], [100], [3001], [3002]]
输出:
[null, 1, 2, 3, 3]
解释:
RecentCounter recentCounter = new RecentCounter();
recentCounter.ping(1); // requests = [1],范围是 [-2999,1],返回 1
recentCounter.ping(100); // requests = [1, 100],范围是 [-2900,100],返回 2
recentCounter.ping(3001); // requests = [1, 100, 3001],范围是 [1,3001],返回 3
recentCounter.ping(3002); // requests = [1, 100, 3001, 3002],范围是 [2,3002],返回 3
295.find-median-from-data-stream.pdf
60.4 KB
leetcode.com 2022-11-12
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream
295.find-median-from-data-stream.pdf
60.4 KB
leetcode.com 2022-11-12
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream
295.find-median-from-data-stream.pdf
60.4 KB
leetcode.com 2022-11-12
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream
🔴295.find-median-from-data-stream
🏷️ Tags
#two_pointers #design #sorting #heap_priority_queue #data_stream