主页 > imtoken苹果闪退 > 算法 - 购买比特币的最佳时机

算法 - 购买比特币的最佳时机

imtoken苹果闪退 2023-10-23 05:07:26

主题描述

给定一个正整数数组,它的第 i 个元素是比特币在第 i 天的价格。

如果您最多只能完成一笔交易(即买卖一次),请设计一种算法来计算您可以赚取的最大利润。

比特币转错到比特币现金地址了_比特币和股票性质一样吗_808比特币创始人颜万卫 炮制比特币风险大

请注意比特币和股票性质一样吗,您不能在购买比特币之前出售。

输入描述

比特币转错到比特币现金地址了_比特币和股票性质一样吗_808比特币创始人颜万卫 炮制比特币风险大

正整数数组比特币和股票性质一样吗,以空格分隔的 n 个正整数

输出描述

比特币转错到比特币现金地址了_808比特币创始人颜万卫 炮制比特币风险大_比特币和股票性质一样吗

最大利润

分析:这是一个非常简单的动态问题,理解动态规划方法是一个非常经典的问题。只是改变了标题中的场景。从左到右遍历。当一个元素没有被遍历时,从当前元素中减去左边的最小值。

比特币和股票性质一样吗_808比特币创始人颜万卫 炮制比特币风险大_比特币转错到比特币现金地址了

使用获得的结果与已获得的最小值进行比较。

动态规划方法:

比特币和股票性质一样吗_比特币转错到比特币现金地址了_808比特币创始人颜万卫 炮制比特币风险大

适用情况:问题的解具有以下三个性质:最优子结构、无后效应、重叠子问题;

设计步骤:找出最优解的性质并描述其特征;递归定义最优值;自下而上计算最优解;根据构造最优值的过程得到最优解。

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        String[] sArray = s.split(" ");
        int preMin = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        int cur;
        for(int i = 0; i < sArray.length ; i++) {
            cur = Integer.valueOf(sArray[i]);
            max = Math.max(max, cur - preMin);
            preMin = Math.min(preMin, cur);
        }
        System.out.println(Math.max(max, 0));
     
    }
}