美文网首页
【算法题】901. 股票价格跨度

【算法题】901. 股票价格跨度

作者: 程序员小2 | 来源:发表于2023-10-06 07:45 被阅读0次

题目:

设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。

当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。

例如,如果未来 7 天股票的价格是 [100,80,60,70,60,75,85],那么股票跨度将是 [1,1,1,2,1,4,6] 。

实现 StockSpanner 类:

StockSpanner() 初始化类对象。
int next(int price) 给出今天的股价 price ,返回该股票当日价格的 跨度 。

示例:

输入:
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
输出:
[null, 1, 1, 1, 2, 1, 4, 6]

解释:
StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // 返回 1
stockSpanner.next(80); // 返回 1
stockSpanner.next(60); // 返回 1
stockSpanner.next(70); // 返回 2
stockSpanner.next(60); // 返回 1
stockSpanner.next(75); // 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。
stockSpanner.next(85); // 返回 6

提示:

1 <= price <= 10^5
最多调用 next 方法 10^4 次

java代码:

class StockSpanner {
    Deque<int[]> stack;
    int idx;

    public StockSpanner() {
        stack = new ArrayDeque<int[]>();
        stack.push(new int[]{-1, Integer.MAX_VALUE});
        idx = -1;
    }

    public int next(int price) {
        idx++;
        while (price >= stack.peek()[1]) {
            stack.pop();
        }
        int ret = idx - stack.peek()[0];
        stack.push(new int[]{idx, price});
        return ret;
    }
}

相关文章

  • 901. 股票价格跨度

    题目: 编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。 今天股票价...

  • 901. 股票价格跨度(Python)

    难度:★★★☆☆类型:数组方法:单调栈 题目 力扣链接请移步本题传送门[https://leetcode-cn.c...

  • leetcode 901 股票价格跨度

    首先我用插入排序的思想,直接爆破,然后超时没找出来。 后来想了想,用个栈就能解决,里面放二维数组。保存最大的价格和...

  • 栈-N901-股票价格跨度

    题目 概述:给定一个股票每日价格列表,返回股票价格的跨度:从当天开始往回数小于等于今天价格的最大连续日数(包括今天...

  • 深圳某互联网证券面试题:双指针的使用

    背景 面试深圳某互联网证券公司,算法题是给一个固定时间区间的股票价格,找出最佳买卖时机,使得收益最大,其中一天只能...

  • Android面经| 算法题解

    整理了校招面试算法题,部分《剑指offer》算法题,以及LeetCode算法题,本博文中算法题均使用Java实现校...

  • 《巴菲特的估值逻辑:20个估值案例》第三部分

    时间跨度:1989~2014年 时代背景:变化多端。1989~1999年期间,美国进入了全面但短暂的衰退。股票价格...

  • 面试题高频算法题整理

    以下算法题几乎都是简单题,都为面试算法题值得刷的题,需要理解并记住解题思路,而其中★标注的题,更是面试算法题中的高...

  • 20221013 专业英语9

    901. preheat/ preheating 预热 902. protective gloves 劳保手套 9...

  • 一个简单的股票跨度算法

    《真实世界的算法》(一) 今天开始,试着用Python实现《真实世界的算法》中的算法 股票跨度 一只股票的价格在某...

网友评论

      本文标题:【算法题】901. 股票价格跨度

      本文链接:https://www.haomeiwen.com/subject/yiypbdtx.html