买卖股票的时机_dp

简介: 买卖股票的时机_dp

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

*

* 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

*

* 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

*

*  

*

* 示例 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。

*  

*

* 提示:

*

* 1 <= prices.length <= 105

* 0 <= prices[i] <= 104

public class 买卖股票的最佳时机 {
    public static void main(String[] args) {//暴力时间超了,但是结果能算出来
        int[] aa={7,6,4,3,1};
        System.out.println(f(aa));
        int cnt=0;
        for (int i = 0; i <aa.length-1 ; i++) {
            for (int j = i+1; j <aa.length ; j++) {
                cnt=Math.max(aa[j]-aa[i],cnt);
            }
        }
        System.out.print(cnt);
    }
    static int f(int[] aa){//dp  先找出今天之前的最小的股票的价格,然后用每天的股价减去之前最小的价格
       int[] dp=new int[aa.length];
       int min=Integer.MAX_VALUE;
        int max=0;
       if (aa.length==1){
           return 0;
       }else {
           for (int i = 0; i <aa.length ; i++) {
               if (aa[i]<min){
                   min=aa[i];
               }else if (aa[i]-min>max){
                   max=aa[i]-min;
               }
           }
       }
       return max;
    }
}


相关文章
|
5天前
|
算法
leetcode代码记录(买卖股票的最佳时机 IV
leetcode代码记录(买卖股票的最佳时机 IV
16 2
|
5天前
|
算法
leetcode309最佳买卖股票时机含冷冻期刷题打卡
leetcode309最佳买卖股票时机含冷冻期刷题打卡
17 0
|
5天前
|
算法
leetcode-309:最佳买卖股票时机含冷冻期
leetcode-309:最佳买卖股票时机含冷冻期
24 0
|
9月前
|
算法
dp算法 力扣309最佳买卖股票时机含冷冻期
dp算法 力扣309最佳买卖股票时机含冷冻期
|
9月前
|
机器学习/深度学习
多状态动态规划之最佳买卖股票时机含冷冻期
多状态动态规划之最佳买卖股票时机含冷冻期
130 0
|
6月前
|
程序员 编译器
BM80 买卖股票的最好时机(一)
BM80 买卖股票的最好时机(一)
|
7月前
|
算法
【学会动态规划】最佳买卖股票时机含冷冻期(15)
【学会动态规划】最佳买卖股票时机含冷冻期(15)
23 0
|
9月前
|
算法
算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
|
9月前
|
算法
算法练习Day50|● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV
算法练习Day50|● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV
|
9月前
|
算法
算法练习Day49|● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II
算法练习Day49|● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II