剑指offer63.股票的最大利润

news2024/11/14 15:06:21

 这道题比我想象的简单,通过示例1可以发现,这个股票只能买卖一次,我以前写过一道题股票可以买卖多次比如示例1就可以1买5卖再3买6卖这样利润就是7,而这道题其实就是找一个小的数和它后面的大的数的差值,找出这个最大差值,如果用两遍循环肯定可以写出,但是数组的大小是10的5次方,两遍循环复杂度变成了10的10次方,肯定超时,所以最多用一次循环,以下是我的代码:

class Solution {
    public int maxProfit(int[] prices) {
       int n = prices.length;
       if(n==0)return 0;
       int[] dp = new int[n];
       int min = prices[0];
       int max = 0;
       for(int i=1;i<n;i++){
          dp[i] = prices[i] - min;
          max=Math.max(max, dp[i]);
          if(prices[i] < min) min=prices[i];
       } 
       return max;
    }
}

dp[i]表示我当天卖掉能挣的最多的钱,我遍历price数组,遍历到的元素是要卖掉的这一天,我只要用我当天的价格减前面的最小的价格就是我这天卖能挣的最多的钱,所以遍历的同时我维护一个min表示最小的价格,把这个差值放入dp[i]中,我用一个max表示dp数组中的最大值,每次dp数组更新的同时更新max,最后返回max就是最大的利润。需要注意的是测试用例中有一个长度为0的price数组,判断一下就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试手写实现Promise.all

目录 前言常见面试手写系列Promise.resolve 简要回顾源码实现Promise.reject 简要回顾源码实现Promise.all 简要回顾源码实现Promise.allSettled 简要回顾源码实现Promise.race 简单回顾源码实现结尾 前言 (?﹏?)曾经真实发生在一个朋友身上的真实事件&#xff0c;面试官让…

网络应用技术师技能考试试题

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

2023秋招面试题持续更新中。。。

目录 1.八股文渐进式MVVM三次握手&#xff0c;四次挥手viteajax组件化和模块化虚拟dom原理流程浏览器内核浏览器渲染过程回流和重绘nextTick 2.项目相关1.声明式导航和编程式导航重写push和replace方法&#xff1a;性能优化图片懒加载路由懒加载 http请求方式 1.八股文 渐进式…

怎样快速实现一个发送邮件的接口?flask_mail库30行代码,快速实现

需求 实现了一个根据部门批量获取自动化行覆盖率&#xff0c;并与指标做diff的脚本&#xff0c;怎么才能第一时间通知给对应的人呢&#xff1f; 最先想到的一定是邮件发送(后边我在自己项目中接入的是公司内部的一个类似钉钉的服务号) 因为原本项目是用的flask&#xff0c;所…

DRUPAL 8.x远程代码执行漏洞(CVE-2018-7600)

事件背景 框架漏洞收集 CVE-2018-7600有两个POC分别是7和8的&#xff0c;本文仅研究8版本的POC&#xff0c;与其它的文章不同的事&#xff0c;本文我将数据流向调试并记录下来了 漏洞说明 1. 漏洞原理&#xff1a;Drupal对表单请求内容未做严格过滤&#xff0c;因此&#x…

900就能上8000MHz的DDR5内存,光威神策做到了

这是一款定位于高端国产DDR5电竞游戏内存条的产品&#xff0c;而且是来自国产品牌&#xff0c;频率可以达到8000MHz&#xff0c;设计也是相当惊艳&#xff0c;重点在于它的价格是真的香&#xff0c;有需要的朋友可以冲了。 光威近期发布了一款神策系列DDR5内存条&#xff0c;相…

【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio完成简易通讯录

目录 &#x1f506;Cloud Studio 简介 操作步骤 1.登录 2.创建工作空间 3.初始界面 4.开发空间 5.保存自定义模板 &#x1f506;简易通讯录 1.实验要求 2.操作环境 3.源代码介绍 3.1 定义通讯录类 3.2 定义通讯录列表 3.3 添加联系人功能 3.4 修改联系人 3.5 …

Echarts 柱状图显示百分比

以下是生成的 option option {yAxis: { name: 金额&#xff08;元&#xff09;, type: value },xAxis: { type: category },legend: {},series: [{stack: x,name: 早餐,label: {normal: {show: true,position: insideRight,// 格式化显示formatter: function (params) {let …

清楚知道谁在划水?伙伴云一招搞定任务交办

伙伴云任务交办让每个职场人都拥有专属的事务汇集地&#xff0c; 让老板一张图把控全局&#xff0c;运筹帷幄&#xff0c; 让员工每天的工作井然有序&#xff0c;让每件事的进展都有始有终、形成闭环。一起来看看吧&#xff01; 01企业内部任务管理的重要性 对于一家公司或一…

Java泛型的简单认识

泛型的认识 自定义泛型&#xff0c;定义了String类型&#xff0c;随后这个泛型就是String类型 于是他的方法都是字符串的类型 泛型接口 泛型方法 所有车可以进行比赛&#xff0c;定义了一个BMW和BENZ两个车类&#xff0c;都继承car&#xff0c;当使用泛型的 如果你顶一个狗对象…

Centos7 安装tomcat9

去官网下载 数据包 ps: wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.78/bin/apache-tomcat-9.0.78.tar.gz检查Java环境 [tomcatlocalhost bin]$ java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java H…

品牌渠道治理的有效方法

什么是品牌渠道&#xff0c;即品牌的销售渠道&#xff0c;围绕销售渠道做的治理工作&#xff0c;根本上是对低价、窜货的治理&#xff0c;当渠道中存在低价问题&#xff0c;那不管是对经销商还是非授权店铺&#xff0c;都会有不好的影响&#xff0c;经销商会跟价&#xff0c;非…

派森编程软件python好学吗,派森语言python干什么的

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;派森编程软件python有什么用&#xff0c;派森编程软件python好学吗&#xff0c;现在让我们一起来看看吧&#xff01; 1、python真的值得学吗&#xff1f; 不建议学python的原因&#xff1a; 1、语言性能差 对于C老手…

ACL访问控制列表(红茶三杯CCNA)

ACL的两大主要功能&#xff1a; 1. 流量控制 2. 匹配感兴趣流量ACL分为两类 Standard ACL-标准访问控制列表 只能根据源地址做过滤针对整个协议采取相关动作&#xff08;允许或禁止&#xff09; Extended ACL-扩展访问控制列表 能根据源、目的地址、端口号进行过滤能允许或拒…

实验四 汇编语言程序上机过程

五、实验步骤 1、用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为Hello.ASM。将源文件放到Dosbox挂载的目录下面。 图5-1为源码写注释并更改扩展名为Hello.ASM 2、用MASM对源文件进行汇编,产生Hello.OBJ文件和Hello.LST文件。若汇编时提示有错,用文字编辑工具修改源程…

YAPI接口自动鉴权功能部署详解

安装准备 以下操作&#xff0c;默认要求自己部署过yapi&#xff0c;最好是部署过yapi二次开发环境。 无论是选择在线安装或者是本地安装&#xff0c;都需要安装client工具。 1、yapi-cli&#xff1a;npm install yapi-cli –g&#xff0c; 2、安装后将文件夹nodejs/node_gl…

Nexpose v6.6.208 for Linux Windows - 漏洞扫描

Nexpose v6.6.208 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, Release Jul 27, 2023 请访问原文链接&#xff1a;https://sysin.org/blog/nexpose-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.o…

10分钟带你实现一个Android自定义View:带动画的等级经验条

先展示一下静态效果图 介绍一下我们的实现流程&#xff1a; 首先整个经验条有一个圆角边框的背景打底&#xff1b;然后给经验条绘制一条轨道&#xff0c;让用户比较直观地看到总进度的长度&#xff1b;在轨道的上层绘制我们的渐变色经验条&#xff1b;在经验条的上层绘制等级…

vue新学习 02 vue命令v-model,数据代理(作用域和作用域链),事件,监听,渲染,计算属性(也就是把操作属性的语句放到vue实例中)

双向绑定用命令v-model&#xff1a; v-bind的命令是单项去绑定data中的相关属性&#xff0c;此时的data是真正的data&#xff0c;并没有用变量声明的方式去接收vue实例对象&#xff0c;也就是例如用const vm new Vue({})。而是直接就采用了new Vue&#xff08;{}&#xff09;这…

6、Kubernetes核心技术 - Pod

目录 一、概述 二、Pod机制 2.1、共享网络 2.2、共享存储 三、Pod资源清单 四、 Pod 的分类 五、Pod阶段 六、Pod 镜像拉取策略 ImagePullBackOff 七、Pod 资源限制 八、容器重启策略 一、概述 Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。P…