美文网首页
一个简单的股票跨度算法

一个简单的股票跨度算法

作者: 迷途老鹰 | 来源:发表于2021-06-08 22:09 被阅读0次

《真实世界的算法》(一)

今天开始,试着用Python实现《真实世界的算法》中的算法

股票跨度

一只股票的价格在某天的跨度(span)是指这一天之前连续多少天股票价格低于或等于这天的价格。

quotes = [7,11,8,6,3,8,9]
spans = []
for i in range(7):
    k = 1
    span_end = False
    while i-k >= 0 and not span_end:
        if quotes[i-k] <= quotes[i]:
            k += 1
        else:
            span_end = True
    spans.append(k)
print(spans)

[1, 2, 1, 1, 1, 4, 5]

使用栈的股票跨度算法

class Stack(object):

    def __init__(self):
        self.stack = []

    def isEmpty(self):
        """
        栈是否为空
        """
        return self.stack == []

    def push(self, data):
        """
        进栈函数
        """
        self.stack.append(data)

    def pop(self):
        """
        出栈函数,
        """
        return self.stack.pop()

    def gettop(self):
        """
        取栈顶
        """
        return self.stack[-1]

def StackStockSpan():
    quotes = [7,11,8,6,3,8,9]
    spans = []
    stack = Stack()
    stack.push(0)
    for i in range(7):
        while not stack.isEmpty() and quotes[stack.gettop()] <= quotes[i]:
            stack.pop()
        if stack.isEmpty():
            spans.append(i+1)
        else:
            spans.append(i-stack.gettop())
        stack.push(i)
    return spans

if __name__ == "__main__":
    print(StackStockSpan())

[1, 2, 1, 1, 1, 4, 5]

相关文章

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

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

  • 901. 股票价格跨度

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

  • 股票估值的简单算法

    今天想给大家分享一下这几天股票分析的一点小思路,只适合初级小白,不适合股票高手。很多人入场股票往往都会有个共性问题...

  • 栈-N901-股票价格跨度

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

  • 韩国1.5分彩全天在线计划方案,天哥已验证

    关于时彩跨度利用,其实思路很多,这里讲一个利用跨度定胆的方法,简单的说明一下原理:用上期的跨度和合尾定其中一边的号...

  • 买卖股票的最佳时机 II

    题目 难度级别:简单 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获...

  • 一个分布式ID的生成器-雪花算法

    上面雪花算法生成分布式ID的原理和实现,简单理解就是利用时间戳从时间跨度上来避免ID的重复,利用机器的编号来避免集...

  • leetcode 901 股票价格跨度

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

  • KMP算法心得

    在介绍kmp算法之前,我想先简单介绍一下Brute-Force算法,这是一个回溯的字符串模式匹配算法,是一个简单暴...

  • 反腐倡廉

    反腐倡廉 股票题材似乎已经画尽,跨度很大,从股票到反腐倡廉,这个世界各国都存在的毒瘤,像环保问题一样,也是最难表现...

网友评论

      本文标题:一个简单的股票跨度算法

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