【LeedCode】121.Best Time to Buy and Sell Stock

本文介绍了一个算法问题,即如何从给定的股票价格数组中找到最大的利润,仅允许进行一次买入和一次卖出操作。通过遍历数组并跟踪最低购买价格及最大利润差值来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description:

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

Example 1:

Input: [7, 1, 5, 3, 6, 4]
Output: 5

max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)

Example 2:

Input: [7, 6, 4, 3, 1]
Output: 0

In this case, no transaction is done, i.e. max profit = 0.

题目分析:简单的买卖股票,遇到最小的就保存表示买进,计算后面与它的差值取最大差值即为收益。若后面的数值都比它小,则收益为零。


Solutions:

class Solution {

public:

    int maxProfit(vector<int>& prices) {

if(prices==null||prices.length<=1){ 

return 0

  }

  int res=0,temp,inv;

temp=prices[0];

for(int i=1;i<prices.length;i++){

inv=prices[i];

    if(temp>inv){

    temp=inv;

}

else{

inv=inv-temp;

res=res>inv?res:inv;

}

}

return res;

    }

};

内容概要:本文档详细介绍了基于N-BEATS深度残差结构和Transformer编码器的多变量时间序列预测模型的实现与应用。N-BEATS通过其独特的残差结构逐层逼近时间序列的趋势和季节性成分,而Transformer编码器利用自注意力机制捕获长距离依赖关系和多变量间的复杂交互。两者结合形成了一个高效的预测模型,旨在提升预测精度、泛化能力和鲁棒性,并提供模型解释性支持。文档还涵盖了项目背景、目标、挑战及其解决方案,具体描述了模型架构和实现细节,并提供了MATLAB代码示例,包括N-BEATS基础块、Transformer编码器层及主模型函数的定义与训练过程。 适合人群:具备一定机器学习和深度学习基础的研究人员、工程师或开发者,特别是对时间序列预测和MATLAB编程有一定了解的人士。 使用场景及目标:①解决多变量时间序列预测中的复杂依赖关系建模、长序列远距离依赖信息捕获、非平稳性与噪声干扰等问题;②优化计算效率与模型部署,提高模型的可扩展性和适应性;③通过结合N-BEATS和Transformer的优势,实现更高的预测精度和更好的模型解释性。 其他说明:文档强调了模型在金融、工业、环境监测等领域的实际应用价值,同时也指出了模型训练中的计算资源和效率瓶颈,并提供了相应的优化措施。项目不仅关注理论创新,更注重实际应用,为用户提供系统化的实现方案和代码示例,推动MATLAB在深度学习时间序列领域的应用普及。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值