给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入股票前卖出股票。

示例 1:

输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
示例 2:

输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

public class Solution121 {
    public static int maxProfit(int[] prices) {
        int i,j=0,k=0;
        int n = prices.length;
        int min = 10000;
        int max = -1;
        int t=0,flag;
        for(i=0;i<n;i++)
        {
            flag = 0;
            if(prices[i]>=max)
            {
                max = prices[i];
                flag = 1;
                j = i;
                if(j==0)
                {
                    max = -1;
                }
            }
            if(prices[i]<=min)
            {
                min = prices[i];
                flag = 1;
                k = i;
            }
            if(i>0&&flag==1&&k<j&&t<(max-min))
            {
                t = max - min;
            }
            if(prices[i]-min>t&&k<i)
            {
                t = prices[i]-min;
            }
        }
        return t;
    }
    
    public static void main(String[] args)
    {
    //    int[] a={7,1,5,3,6,4};
    //    int[] a={7,6,4,3,1};
    //    int[] a={2,1,2,1,0,1,2};
        int[] a={3,3,5,0,0,3,1,4};
        System.out.println(maxProfit(a));
    }
}

动态规划--Leetcode121.买卖股票的最佳时机相关推荐

  1. 算法训练Day49 | Leetcode121. 买卖股票的最佳时机(只能买卖一次);LeetCode122. 买卖股票的最佳时机II(可以买卖多次)

    目录 Leetcode121. 买卖股票的最佳时机 方法一:暴力解法 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 方法二:贪心算法 1. 思路 2. 代码实现 3. 复杂度分析 方 ...

  2. _42LeetCode代码随想录算法训练营第四十二天-动态规划 | 121.买卖股票的最佳时机、122.买卖股票的最佳时机II

    _42LeetCode代码随想录算法训练营第四十二天-动态规划 | 121.买卖股票的最佳时机.122.买卖股票的最佳时机II 题目列表 121.买卖股票的最佳时机 122.买卖股票的最佳时机II 1 ...

  3. 买卖股票动态规划python_leetcode 买卖股票的最佳时机(一,二简单,动态规划)...

    买卖股票的最佳时机(一): 本题是获取最大利润:利用动态规划求解,自底向上,找出从以前到今天可以获取的最大利润:因此最后一天的就是最大利润: 状态 每天有三种选择,买入,卖出,什么也不做: 每天的状态 ...

  4. 代码随想录算法训练营第五十二天_第九章_动态规划 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

    LeetCdoe 121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格. 你只能选择 某一天 买入这只股票,并选择在 未 ...

  5. Leetcode-121. 买卖股票的最佳时机

    题目链接 121.买股票的的最佳时机 题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最 ...

  6. leetcode--121. 买卖股票的最佳时机

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ...

  7. leetcode121买卖股票的最佳时机

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ...

  8. (java)leetcode121 买卖股票的最佳时机1(Best Time to Buy and Sell Stock)针对数组的峰值和谷底的操作

    题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出 ...

  9. 【买卖股票的最佳时机】

    [LeetCode121. 买卖股票的最佳时机] 题目描述 方法1: 一次遍历 方法2: 动态规划 题目描述 买卖股票的最佳时机 https://leetcode-cn.com/problems/be ...

最新文章

  1. c语言int64编译时错误,错误:编译C程序时未在此作用域中声明uint64_t
  2. iOS用户设计指南 - 平台特征
  3. oracle 递归查询
  4. 独立成分分析ICA系列1:意义
  5. BZOJ 4819 Luogu P3705 [SDOI2017]新生舞会 (最大费用最大流、二分、分数规划)
  6. python中math库最大值_python-math库解析
  7. jsp 连接MS server 数据库的例子
  8. 图像特征提取与描述_角点特征01:Harris算法+Shi-Tomas算法
  9. hadoop碰到的 一个问题
  10. 进程和线程的理解(转)
  11. 管理感悟:如何改造代码
  12. 计算机基础知识和运用2作图,2020年9月统考《计算机应用基础》基础知识试题及答案2...
  13. 小米真蓝牙耳机说明书_【小米真无线蓝牙耳机Air 2评测使用说明书介绍】快充|降噪|蓝牙5.0|开盖即连|快捷操作_摘要频道_什么值得买...
  14. 多路电源管理芯片(记录)
  15. MySQL中关于超键,主键和候选键的区别
  16. Jenkins-构建项目
  17. 太原理工大学信息与计算机学院桑胜波,Direction leader: Sang Shengbo
  18. Python实现元胞自动机——十字路口
  19. oracle11g rac转换单机,oracle11g rac RMAN备份恢复至单机
  20. 用代码写个人简历的练习

热门文章

  1. LeetCode 107. 二叉树的层次遍历 II(队列)
  2. LeetCode 129. 求根到叶子节点数字之和(DFS)
  3. go oracle编程,go基础编程(一):第一个go程序-hello word
  4. 服务器换完主板后无盘进不了系统,更换主板后主板认不出硬盘无法进入系统的办法 – 手机爱问...
  5. 语言4位bcd码怎么加加_S7300400如何使用SCL语言调用SFC1(READ_CLK)读取日期和时间?...
  6. SemEval-2010任务8:成对名词之间的语义关系的多分类
  7. oracle 汇总上面所有,Oracle经验技巧汇总
  8. java ndc_通过slf4j/log4j的MDC/NDC 实现日志追踪
  9. windows脚本命令闪退_NCL2Python|windows系统安装Pyngl和Pynio
  10. 【RippleNet】(一)preprocessor.py【未完】