【2.23】算法6:贪心算法和动态规划

方法一:贪心算法

关键点:

1:因为严格按照时间的先后顺序执行,一定要先买,在卖

2:遍历数组维护两个变量maxProfit最大的利润和minPrice最小价格。

3:如果当前价格小于最小的值minPrice时,更新minPrice的值。

4:当前前价格与最小值minPrice得差值大于maxProfi时,更细maxProfi的值

3:返回maxProfit的值

int maxProfit(int* prices, int pricesSize)
{
    //贪心法的原理
    //记录最小的 和记录最大的
    int maxProfit = 0;
    int minPrice  =prices[0];
    int i;
    for(i=0; i< pricesSize; i++)
    {
        if(minPrice > prices[i])
            minPrice = prices[i];

        if(prices[i]- minPrice > maxProfit)
            maxProfit=prices[i]- minPrice;
    }
    return maxProfit;

}

方法二:动态规划

关键点:

因为前面的暴力法超时的原因是因为大量的重复计算。

如果dp[i][j]表示第i天数,j表示是否持股票

int maxProfit(int* prices, int pricesSize)
{
    //动态规划,dp[i][j]在第i天是否持有股票 j = 1持有  j = 0卖出 
    int dp[pricesSize][2];
    int i;
    dp[0][0] = 0;   
    dp[0][1] = -prices[0];
    for(i = 1; i < pricesSize; i++ )
    {
        //第i天没有股票,有两种情况 昨天没有买 今天保持  昨天买了今天 卖出了
        dp[i][0] = fmax(dp[i-1][0],dp[i-1][1] + prices[i]);
        //第i天持有股票,有两种情况 昨天没有买 今天保持  昨天没买了  今天买
        dp[i][1] = fmax(dp[i-1][1],-prices[i]);
    }
    //for(i = 0; i < pricesSize; i++ )
    //    printf("i = %d dp[0]:%d  dp[1]:%d\n",i,dp[i][0],dp[i][1]);
    return dp[pricesSize-1][0];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当在部署TensorFlow时出现"ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found"错误时,这是因为你的系统缺少GLIBC库的版本2.23。GLIBC是GNU C库,是Linux系统的重要组件之一。 要解决这个问题,你可以按照以下步骤进行操作: 1. 首先,确认你的系统是否已经安装了GLIBC库。你可以通过在终端中运行以下命令来检查: ``` ldd --version ``` 如果你的系统没有安装GLIBC库或者版本较低,你将需要更新你的系统。 2. 更新你的系统以安装GLIBC库的版本2.23或更高版本。你可以使用操作系统的包管理器来更新GLIBC。例如,如果你使用的是Ubuntu发行版,你可以运行以下命令: ``` sudo apt-get update sudo apt-get upgrade ``` 如果你使用的是其他发行版,请参考相应的包管理器文档来更新系统。 3. 如果在更新系统后仍然遇到问题,你可以尝试手动安装GLIBC库的版本2.23。你可以从GLIBC的官方网站下载适合你系统的安装包,并按照官方文档的指导进行安装。 4. 在安装完GLIBC库的版本2.23后,你可能会遇到其他错误。如果你在运行"make install"命令时遇到问题,你可以尝试使用多线程编译来提高效率。你可以运行"make -j n"命令,其中n是你服务器的核数。这将启动n个线程并行编译。 5. 如果你在执行"make install"命令时仍然遇到错误,你可以尝试执行以下命令来创建一个链接: ``` cd /lib64 ln -sf libm-2.23.so libm.so.6 ``` 这将创建一个libm.so.6的软链接,指向libm-2.23.so文件。 通过按照上述步骤操作,你应该能够解决"ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found"错误,并成功部署TensorFlow。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码字神经元

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值