当前位置: 首页 > news >正文

剑指Offer系列(java版,详细解析)63.股票的最大利润

题目描述

剑指 Offer 63. 股票的最大利润

难度中等115收藏分享切换为英文接收动态反馈

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?

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

限制:

0 <= 数组长度 <= 10^5

测试用例

  • 功能测试(存储股票价价格的数组无序、单调递增、单调递减)
  • 边界值测试(存储股票价格的数组中只有两个数字)
  • 特殊输入测试(指向数组的指针为空指针)

题目考点

  • 考察应聘者的抽象建模能力。
  • 考察应聘者对数组的编程能力。

解题思路

核心就是保存之前利润的最大值以及买入的最小值

class Solution {
    public int maxProfit(int[] prices) {
        int cost = Integer.MAX_VALUE, profit = 0;
        for(int price : prices) {
            cost = Math.min(cost, price);
            profit = Math.max(profit, price - cost);
        }
        return profit;
    }
}

相关文章:

  • 剑指Offer系列(java版,详细解析)64.求1+2+...+n
  • 剑指Offer系列(java版,详细解析)65.不用加减乘除做加法
  • 剑指Offer系列(java版,详细解析)66.构建乘积数组
  • 剑指Offer系列(java版,详细解析)67.把字符串转化成整数
  • 剑指Offer系列(java版,详细解析)68.树中两个节点的最低公共祖先
  • Go语言fmt.Sprintf(格式化输出)
  • Go 面试系列:Go interface中nil的比较问题
  • Go 面试系列: new 和 make有什么不同之处呢?
  • Go 面试系列: Goroutine 数量是越多越好吗?设置多少会影响GC调度呢?
  • 什么是读、写扩散?
  • 一文搞定权限设计模型(RBAC,ABAC)超详细图文解析
  • 一文搞定权限管理!授权、鉴权超详细解析
  • Go 中的 JSON如何序列化和反序列化?来看看go的包怎么实现!
  • Go中如何比较两个json?深度优先搜索解决,超详细代码!
  • Go语言实现枚举方法,const和iota结合轻松实现
  • [case10]使用RSQL实现端到端的动态查询
  • CentOS7简单部署NFS
  • es6(二):字符串的扩展
  • ES6系统学习----从Apollo Client看解构赋值
  • github指令
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java比较器对数组,集合排序
  • JS 面试题总结
  • Js基础——数据类型之Null和Undefined
  • React Transition Group -- Transition 组件
  • ViewService——一种保证客户端与服务端同步的方法
  • Web标准制定过程
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 记一次和乔布斯合作最难忘的经历
  • 聊聊redis的数据结构的应用
  • 前端设计模式
  • 算法系列——算法入门之递归分而治之思想的实现
  • 译米田引理
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 怎么将电脑中的声音录制成WAV格式
  • const的用法,特别是用在函数前面与后面的区别
  • #define与typedef区别
  • #Linux(make工具和makefile文件以及makefile语法)
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (pojstep1.3.1)1017(构造法模拟)
  • (分布式缓存)Redis持久化
  • (分布式缓存)Redis哨兵
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (原)Matlab的svmtrain和svmclassify
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net多线程总结
  • .skip() 和 .only() 的使用