首页 > 其他分享 >动态规划_买卖股票的最佳时机

动态规划_买卖股票的最佳时机

时间:2022-12-11 09:33:05浏览次数:30  
标签:买卖 Sub UBound maxProfit Application 最佳时机 prices 动态 dp

'示例 1:
'输入: [7,1,5,3,6,4]
'输出:5
'解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
'
'示例 2:
'输入: prices = [7,6,4,3,1]
'输出:0
'解释:在这种情况下, 没有交易完成, 所以最大利润为 0
Sub d32_动态规划_买卖股票的最佳时机()
    prices = Array(7, 1, 5, 3, 6, 4)
    Dim dp(1)
    dp(0) = -prices(0)
    dp(1) = 0
    For i = 1 To UBound(prices)
        dp(0) = Application.Max(dp(0), -prices(i - 1))
        dp(1) = Application.Max(dp(1), dp(0) + prices(i - 1))
    Next
    Debug.Print (dp(1))
End Sub

Sub d32_动态规划_买卖股票的最佳时机2()
    prices = Array(7, 1, 5, 3, 6, 4)
    res = maxProfit(prices)
    Debug.Print (res)
End Sub

Public Function maxProfit(prices)
    If UBound(prices) = 0 Then maxProfit = 0: Exit Function
    length_ = UBound(prices) + 1
    Dim dp()
    ReDim dp(length_, 1)
    result = 0
    dp(0, 0) = -prices(0)
    dp(0, 1) = 0
    For i = 1 To UBound(prices)
        dp(i, 0) = Application.Max(dp(i - 1, 0), -prices(i))
        dp(i, 1) = Application.Max(dp(i - 1, 0) + prices(i), dp(i - 1, 1))
    Next
    maxProfit = dp(length_ - 1, 1)
End Function

 

标签:买卖,Sub,UBound,maxProfit,Application,最佳时机,prices,动态,dp
From: https://www.cnblogs.com/eyunkeji/p/16972841.html

相关文章

  • Kubernetes(k8s)存储管理之数据卷volumes(五):动态制备-存储类StorageClass
    目录一.系统环境二.前言三.静态制备和动态制备四.存储类StorageClass4.1存储类StorageClass概览4.2StorageClass资源五.创建存储类StorageClass5.1配置NFS服务端以及共......
  • 动态NAT(NAPT)
    源nat:私网到公网的转换(私网访问公网,目的ip没变,只转换了源ip)。实验要求:假设一个企业从运营商那获得一段公网地址(21.16.1.248/29);要求内网电脑可以正常上外放,并能访问外......
  • Qt应用程序三步引用动态链接库DLL
    1、在.pro中添加对lib的引用   INCLUDEPATH+=$$PWD/include   LIBS+=$$PWD/lib*.a   其中,include目录下包含两个头文件,*_global.h和*.h。2、在引......
  • postgresql/lightdb PL/pgSQL return setof和TABLE的区别及动态SQL执行
    在pg中,广泛的使用了表函数代替视图,返回集合有两种定义,setof和table。他们的区别在于table明确定义了字段名和类型,如下:CREATEFUNCTIONevents_by_type_1(text)RETURNSTABL......
  • 代码随想录第五十七天 | 动态规划
    今天是第五十七天,也是动态规划的最后一天 647.回文子串 classSolution{publicintcountSubstrings(Strings){intn=s.length();i......
  • 动态规划
    动态规划讨论框架#自顶向下递归的动态规划defdp(状态1,状态2,...):for选择in所有可能的选择:#此时的状态已经因为做了选择而改变result......
  • 第七关 如何选择合适的买卖点?
      ......
  • 静态和动态代理模式
    代理模式,也称委托模式,是结构型设计模式之一,何为代理呢?在日常生活中就比如叫朋友替你拿个快递,叫朋友替你做一下作业,叫朋友替你买点东西等等,这个朋友就是你的代理,你把事情委......
  • 使用 udev 高效、动态地管理 Linux 设备文件(转载)--3
    udev的简单规则:清单10.产生网卡设备文件的规则SUBSYSTEM=="net",SYSFS{address}=="AA:BB:CC:DD:EE:FF",NAME="public_NIC"该规则表示:如果存在设备的子系统为net,并且......
  • Android插件化动态加载APK
    什么是插件化动态加载apk?支付宝是万能的,既可以淘票票看电影,又可以买车票,还可以开共享单车,这些都是支付宝的开发人员开发维护的么?显然不是,那么他是怎么做到的呢?是使用了动态......