【代码随想录】算法训练计划49

dp

1、121. 买卖股票的最佳时机

题目:
输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。

思路:
  • 二刷了,好理解了
func maxProfit(prices []int) int {// 不看都感觉出来是动态规划了dp := make([][]int, len(prices))for i:=0; i<len(prices); i++ {dp[i] = make([]int, 2)}// dp[i]dp[0][0] = prices[0] //代表从第一个元素到第i个元素中最小的股票价格           dp[0][1] = 0 //代表第i天能拿到的最大利润,利润是减掉成本了的for i:=1; i<len(prices); i++ {dp[i][0] = min(dp[i-1][0],prices[i])dp[i][1] = max(dp[i-1][1], prices[i]-dp[i][0])}return dp[len(prices)-1][1]
}
func max(a,b int) int { if a>b { return a}; return b}
func min(a,b int) int {if a<b {return a}; return b}

2、122. 买卖股票的最佳时机 II

题目:
输入:prices = [7,1,5,3,6,4]
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。
总利润为 4 + 3 = 7 。

思路:
  • 和1相比,这个可以买卖多次,那就求区间为正数的和,即可,贪心了,二刷
func maxProfit(prices []int) int {// 代码二刷,贪心,取每天区间的正数ans := 0for i:=1; i<len(prices); i++ {qu := prices[i]-prices[i-1]if qu > 0 {ans += qu}}return ans
}

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

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

相关文章

基于导数Zernike多项式拟合技术的干涉测量二维相位展开算法(原文翻译)

Zixin Zhao1&#xff0c;Hong Zhao1、Lu Zhang 1&#xff0c;Fen Gao2&#xff0c;Yuwei Qin3&#xff0c;Hubing Du 摘要: 我们提出了一种适用于一般干涉测量应用的相位展开方法。所提出的方法依赖于导数泽尼克多项式拟合&#xff08;DZPF&#xff09;技术&#xff0c;其中相…

淡化了技术指标 还能做现货黄金交易?

技术指标是分析和预测现货黄金走势的其中一种方法&#xff0c;普通投资者多数依赖技术指标为自己的交易做判断。然而&#xff0c;近几年有一种观点认为&#xff0c;我们应该淡化技术指标&#xff0c;少使用或者不用技术分析来服务我们的交易。这个观点引起了不少投资者的思考&a…

现代密码学复习

密码学总结 目录 密码学总结 第一章——只因础模型与概念 1.1 密码学五元组&#xff08;结合&#x1f40f;皮卷&#xff09; 1.2 Dolev-Yao威胁模型 1.3 攻击类型 1.4 柯克霍夫原则&#xff08;Kerckhoffss principle&#xff09; 1.5 对称、非对称加密 1.6 密码的目标…

优雅玩转实验室服务器(二)传输文件

使用服务器最重要的肯定是传输文件了&#xff0c;我们不仅需要本地的一些资源上传到服务器&#xff0c;好进行实验&#xff0c;也需要将服务器计算得到的实验结果传输到本地&#xff0c;来进行预览或者报告撰写。 首先&#xff0c;由于涉及到服务器操作&#xff0c;我强烈推荐…

【FPGA】Verilog:BCD 加法器的实现 | BCD 运算 | Single-level 16 bit 超前进位加法器 | 2-level 16-bit 超前进位加法器

0x00 BCD 运算 在 BCD 中,使用4位值作为操作数,但由于只表示 0 到 9 的数字,因此只使用 0000 到 1001 的二进制数,而不使用 1010 到 1111 的二进制数(dont care)。 因此,不能使用常规的 2complement 运算来计算,需要额外的处理:如果 4 位二进制数的运算结果在 1010 …

C++共享和保护——(1)作用域

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 人生就像骑单车&#xff0c;要想平衡就…

vue项目中 CDN 是vue本身的依赖可以按需加载还是项目中所有的第三方库都可以按需加载?

这是我看到CDN简介时产生的问题 相信很多小伙伴会有 和我一样的疑问 在这里 我也统一回答一下 CDN&#xff08;内容分发网络&#xff09;是一种通过将数据分发到全球各个节点&#xff0c;以提供快速、可靠的内容传输的技术。在Vue项目中&#xff0c;CDN可以用于按需加载Vue本…

HTML行内元素与块级元素的区别

目录 行内元素&#x1f338;常见的行内元素&#x1f338;行内元素&#xff08;内联元素&#xff09;的特性 块级元素&#x1f338;常见的块级元素&#x1f338;块级元素的特性 相互转换(display)&#x1f338;行内块状元素的特性 行内元素 &#x1f338;常见的行内元素 <s…

MicroSD 卡 使用读卡器 读取速度测试

设备 - - 电脑为m.2固态硬盘 usb口为USB3.2 gen2接口(即支持1GB/s的接口) cpu: amd3600 测试方案1 直接MicroSD卡放入读卡器测试 38MB/s 从sd卡复制到本地C盘 测试方案2 MicroSD卡使用闪迪的SD卡套套上之后一起插入读卡器 76MB/s 从sd卡复制到本地C盘

HCIA-H12-811题目解析(10)

1、【单选题】DHCP客户端在租期到达哪个比例时第一次发送续租报文&#xff1f; 2、【单选题】在WLAN中用于标识无线网络&#xff0c; 区分不同的无线网络的是&#xff1f; 3、【单选题】我们在笔记本电脑上搜索可接入无线网络时&#xff0c;显示出来的网络名称实际是 4、【单…

[go 面试] 雪花算法与分布式ID生成

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等&#xff0c;您的关注将是我的更新动力&#xff01; 生成全局唯一ID的雪花算法原理 雪花算法是一种用于生成全局唯一ID的算法&#xff0c;最初由Twitter开发&#xff0c;用于解决分…

PPT制作的几个注意事项

PPT制作的几个注意事项 字数不可过多字体大小字体颜色排版问题PPT篇末致谢什么是好的PPT关于演讲不要念PPT说话时面向观众。讲话的时候抖腿其他 事先声明&#xff1a; 以下展示的PPT就PPT制作技巧而言&#xff0c;与其内容无关。 字数不可过多 做PPT最忌讳的就是满篇全是文字&…

SpringBoot应用开发指南(01)

目录 引言1. SpringBoot简介1.1 什么是SpringBoot1.1.1 背景1.1.2 优势1.1.3 核心概念 1.1.3 特点 2. SpringBoot入门2. SpringBoot集成MyBatis3. SpringBoot集成PageHelper3.1 什么是PageHelper 通过切面实现分页4. SpringBoot集成Druid总结 引言 在当今软件开发领域&#xf…

Django回顾【六 】

目录 一、Cookie和Session 【1】Cookie 【2】Session 二、中间件 【1】 什么是中间件 【2】作用 【3】自定义中间件 三、CSRF认证相关 【1】CSRF是什么 【2】CSRF攻击原理 【3】CSRF攻击防范 四、auth的使用 【1】author是什么 【2】auth模块常用方法 authentic…

十大shell脚本任务(一)日志文件分析器

十大脚本任务&#xff1a; 日志文件分析器&#xff1a; 目标&#xff1a;编写一个脚本&#xff0c;自动分析服务器日志文件&#xff0c;提取关键错误信息&#xff0c;并发送通知。价值&#xff1a;实时监控系统状态&#xff0c;及时响应问题。 备份和恢复脚本&#xff1a; 目标…

P4 Qt基础控件——工具按钮toolButton(上)

前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ &#x1f33a;本篇简介 &#xff1a;这一章我们学一…

鸿蒙系统扫盲(五):再谈鸿蒙开发用什么语言?

前段时间&#xff0c;发表了鸿蒙系统扫盲&#xff08;三&#xff09;&#xff1a;鸿蒙开发用什么语言&#xff1f;这篇文章&#xff0c;收到一些网友的提问&#xff0c;一一解答了&#xff0c;还有网友对我进行了严厉的批评和尖锐的指责&#xff0c;说我有点颠倒是非&#xff0…

【lesson9】表的约束(2)

文章目录 表的约束的介绍列描述测试建表 zerofill测试建表插入测试 修改表插入测试 修改表插入测试 表的约束的介绍 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角…

WT588F02B-8S语音芯片在水波炉中的应用:提升用户体验与安全性

在现代家电领域&#xff0c;语音芯片的应用日益普及&#xff0c;为各类产品增添了人性化、智能化的元素。以水波炉为例&#xff0c;一种新型的家用电器&#xff0c;它结合了微波炉和烤箱的功能&#xff0c;通过采用WT588F02B-8S语音芯片&#xff0c;使得水波炉在操作、提示、安…

【Flink名称解释一】什么是cataLog

Catalog 提供了元数据信息&#xff0c;例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。 数据处理最关键的方面之一是管理元数据。 元数据可以是临时的&#xff0c;例如临时表、或者通过 TableEnvironment 注册的 UDF。 元数据也可以是持久化的&#x…