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

本文提供了一道华为机试题目——每日股票价格,要求根据股票连续N天的价格,输出等待价格上涨所需的天数。文章通过Java、Python和C++三种语言进行了解析,利用单调栈解决该问题,并给出了示例和解题关键点。

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

alt

题目描述

​ 给定某只股票连续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下次
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什码情况

你的鼓励就是我最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值