每日股票价格 - 华为机试真题题解

题目描述
给定某只股票连续N天的价格列表stockPrices,其中stockPricesi表示股票某天的价格,请生成一个新列表,对应位置输出为:要想等到股票价格上涨,至少需要等待的天数,如果股票价格不上涨,对应位置输出为0。
输入
第一行 表示第二行元素的个数N
第二行为用空格隔开的整数,表示每天股票的价格
其中0<N<=1000000每天股票价格为正整数
输出
输出为用空格分隔的长度为N的列表,对应位置为:要想等到股票价格上涨至少需要等待的天数
示例1
输入:
5
33 34 14 12 16
输出:
1 0 2 1 0
解释:
stockPrices =[33,34,14,12,16]
当i=0时,stockPrices[0]=33,下次价格上涨stockPrices[1]=34,此处输出为1-0=1
当i=1时,stockPrices[1]=34,后续股票价格没有上涨,此处输出0
当i=2时,stockPrices[2]=14,下次价格上涨stockPrices[4]=16,此处输出为 4-2=2
当i=3时,stockPrices[3]=12下次
本文提供了一道华为机试题目——每日股票价格,要求根据股票连续N天的价格,输出等待价格上涨所需的天数。文章通过Java、Python和C++三种语言进行了解析,利用单调栈解决该问题,并给出了示例和解题关键点。
订阅专栏 解锁全文
669

被折叠的 条评论
为什么被折叠?



