题目:

给定一个数组,它的第 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。

思路:

不断更新最小值,如果当前值更小,则更新最小值,如果大于则做差,看是否可以更新最大值

代码:

class Solution {public int maxProfit(int[] prices) {//首先判断数组是否为空if(prices.length<=0){return 0;}//最大利润int max=0;//最小值,最小买入的时机int min=prices[0];//临时记录差值的数据int temp=0;//遍历for(int i=1;i<prices.length;i++){//如果当前之小于min就更新一下if(prices[i]<min){min=prices[i];}else{//否则就做差,算一下利润,然后再看看能否更新temp=prices[i]-min;if(temp>max){max=temp;}}}return max;}
}

Leetcode刷题java之121买股票的最佳时机相关推荐

  1. leetcode刷题java、c++、go语言三合一版本 谷歌师兄的刷题笔记、东哥的算法小抄、 Guide哥的Java面试突击版

    不久前火爆 GitHub 的 LeetCode 中文刷题手册,分享给大家,让正在找工作的朋友能够快速找到心仪的offer! <LeetCode Cookbook>目前已经收录了 520 道 ...

  2. Leetcode刷题java之3. 无重复字符的最长子串

    执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...

  3. Leetcode刷题java之1079. 活字印刷

    可参考本博客回溯法专栏的最后一条的回溯法框架 https://blog.csdn.net/qq_41901915/article/details/104113330 执行结果: 通过 显示详情 执行用 ...

  4. [LeetCode刷题笔记]714 - 买卖股票的最佳时机含手续费(C++/Python3/Java/动态规划/贪心)

    一.题目描述 给定一个整数数组 prices 和 整数 fee ,其中 prices[i] 表示第 i 天的股票价格,fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都需要付 ...

  5. LeetCode刷题Java——88.合并两个有序数组(简单)

    题目 给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目. 请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列. ...

  6. Leetcode刷题笔记 714. 买卖股票的最佳时机含手续费

    714. 买卖股票的最佳时机含手续费 时间:2020年12月17日 知识点:动态规划 题目链接:https://leetcode-cn.com/problems/best-time-to-buy-an ...

  7. 《LeetCode刷题》—121. 买卖股票的最佳时机

    <LeetCode刷题>-121. 买卖股票的最佳时机 一.题目内容 原题连接:https://leetcode.cn/problems/best-time-to-buy-and-sell ...

  8. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  9. Leetcode刷题 463题:岛屿的周长(基于Java语言)

    ** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...

最新文章

  1. 一个女生写的如何追mm.看完后嫩头青变高手.zz(转贴)
  2. YoloV5 最强剪枝技术 模型压缩,3ms推理的YoloV5mAP60
  3. python之路-day19-面向对象之约束
  4. Java的基础数据类型
  5. 查看linux是几位的操作系统
  6. MyBatis Plus——分页插件【PaginationInnerInterceptor】
  7. ElasticSearch搜索语法进阶学习(搜索+聚合,过滤+聚合)
  8. 树哈希判断同构无根同构问题转有根同构问题
  9. c#打印程序原码_C#程序打印新行
  10. 清除缓存 c语言_如何用C语言设置,清除和切换单个位?
  11. Bluetooth Obex
  12. 利用mongodb开发lbs应用实践【转】
  13. c语言中如何确保一个程序是单例的_c++单例模式
  14. java 工程路径_java 项目的路径详情
  15. LoRa协议在Arduino上的应用——原理及代码分析(一)
  16. 时序逻辑电路的分析和设计
  17. Unity - 撸一个简单版本的 四叉树 + 视锥cascaded,用于场景剔除
  18. 异常与调试之SEH、UEH、VEH、VCH以及SEH原理
  19. 【c51单片机】交通红绿灯设计
  20. java swing开发窗体程序开发(四)MVC结构

热门文章

  1. java代码质量检查工具
  2. TI DSP C:\ti 目录架构
  3. OpenFOAM无反射边界条件源码学习
  4. 2019斯坦福CS224n深度学习自然语言处理笔记(3)——分类模型与神经网络
  5. mac笔记本开发环境——常用功能记录
  6. 基于ResNet50实现宫颈细胞病变分类
  7. ME21N,ME22N,ME23N之BADI增强ME_PROCESS_PO_CUST
  8. 一个高度复杂的APT框架泰姬陵被发现仅用于针对一个中亚外交目标
  9. 设计模式--工厂模式(三种)
  10. WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册