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

714. 买卖股票的最佳时机含手续费

714. 买卖股票的最佳时机含手续费

  • 原题链接:
  • 完成情况:
  • 解题思路:
      • Explanation
      • Summary
  • 参考代码:
    • _714买卖股票的最佳时机含手续费
  • 错误经验吸取

原题链接:

714. 买卖股票的最佳时机含手续费

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/description/

完成情况:

在这里插入图片描述

解题思路:

Sure, let’s break down the code and explain it step by step.

The problem is to maximize the profit from buying and selling stocks given that there is a transaction fee each time you sell a stock. You can perform as many transactions as you like, but you must sell the stock before you can buy again.

Explanation

  1. Initialization:

    int n = prices.length;
    int [][] dp = new int[n][2];
    dp[0][0] = 0;
    dp[0][1] = -prices[0];
    
    • n is the length of the prices array.
    • dp is a 2D array where dp[i][0] represents the maximum profit at day i when you don’t have any stock, and dp[i][1] represents the maximum profit at day i when you have one stock.
    • On day 0, if you don’t own a stock, the profit is 0 (dp[0][0] = 0).
    • On day 0, if you own a stock, the profit is -prices[0] because you bought the stock at prices[0] (dp[0][1] = -prices[0]).
  2. DP Transition:

    for (int i = 1; i < n; i++){dp[i][0] = Math.max(dp[i-1][0], dp[i-1][1] + prices[i] - fee);dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] - prices[i]);
    }
    
    • For each day i from 1 to n-1, we update the dp array:
      • dp[i][0] can be obtained by either:
        • Doing nothing on day i, hence dp[i][0] = dp[i-1][0].
        • Selling the stock on day i, hence dp[i][0] = dp[i-1][1] + prices[i] - fee (selling the stock gives the price at day i, but we must subtract the transaction fee).
      • dp[i][1] can be obtained by either:
        • Doing nothing on day i, hence dp[i][1] = dp[i-1][1].
        • Buying the stock on day i, hence dp[i][1] = dp[i-1][0] - prices[i] (we subtract the price at day i from the profit since we are buying the stock).
  3. Result:

    return dp[n-1][0];
    
    • At the end of the loop, dp[n-1][0] will contain the maximum profit we can achieve on the last day if we don’t own any stock (which is the desired result since we want to end up with no stock to realize the profit).

Summary

  • The algorithm uses dynamic programming to keep track of the maximum profit for each day, considering both states of holding a stock or not holding a stock.
  • The transition equations consider the profit from both holding and selling a stock, incorporating the transaction fee.
  • Finally, the algorithm returns the maximum profit achievable by the end of the last day when no stock is held.

参考代码:

_714买卖股票的最佳时机含手续费

package leetcode板块;public class _714买卖股票的最佳时机含手续费 {/**** @param prices* @param fee* @return*/public int maxProfit(int[] prices, int fee) {//  你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。//  返回获得利润的最大值。int n = prices.length;int [][] dp = new int[n][2];//  0 代表当前股票的空余情况, 1代表当前股票处于抛售的情况dp[0][0] = 0;dp[0][1] = -prices[0];//  TODO   交易的过程中,引入卖出时的手续费for (int i = 1; i < n; i++){dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1] + prices[i] - fee);dp[i][1] = Math.max(dp[i-1][1],dp[i-1][0] - prices[i]);}return dp[n-1][0];}
}

错误经验吸取

相关文章:

714. 买卖股票的最佳时机含手续费

714. 买卖股票的最佳时机含手续费 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;ExplanationSummary 参考代码&#xff1a;_714买卖股票的最佳时机含手续费 错误经验吸取 原题链接&#xff1a; 714. 买卖股票的最佳时机含手续费 https://leetcode.cn/probl…...

Linux系统查看程序内存及CPU占用

文章目录 1.free命令2.top命令3.PS命令3.1 查看内存占用前10位&#xff1a;3.2 查看CPU占用前10位 参考文档 1.free命令 可以通过free命令查看物理内存占用情况 #单位KB free #单位MB free -m #单位GB free -h 2.top命令 输入top命令&#xff0c;会输出定时刷新的程序PID、内…...

数据结构7---图

一、定义 对于图的定义&#xff0c;我们需要明确几个注意的地方:一线性表中我们把数据元素叫元素&#xff0c;树中叫结点&#xff0c;在途中数据元素我们则称之为顶点(Vertex)。 对于图的定义&#xff0c;我们需要明确几个注意的地方: 线性表中我们把数据元素叫元素&#xf…...

Excel 如何复制单元格而不换行

1. 打开excle, sheet1右键单击>查看代码>插入>模块 输入代码 Sub CopyText() Updated by NirmalDim xAutoWrapper As ObjectSet xAutoWrapper New DataObject or GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")xAutoWrapper.SetText ActiveC…...

前端 CSS 经典:mix-blend-mode 属性

前言&#xff1a;这是一个混合属性&#xff0c;作用是将两个颜色混合生成一个新颜色。可以将视频和文字相融合&#xff0c;产生动态文字效果。 效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" />&l…...

OpenCV--滤波器(一)

低通滤波器 代码和笔记 代码和笔记 import cv2 import numpy as np""" 滤波器--用于图像处理的重要工具&#xff0c;它们可以根据图像中像素的邻域信息来修改像素值&#xff0c;以实现去噪、模糊、锐化、边缘检测等效果。低通滤波器&#xff08;Low-pass Filte…...

MK的前端精华笔记

文章目录 MK的前端精华笔记第一阶段&#xff1a;前端基础入门1、&#xff08;1&#xff09;、&#xff08;2&#xff09;、 2、3、4、5、6、7、 第二阶段&#xff1a;组件化与移动WebAPP开发1、&#xff08;1&#xff09;、&#xff08;2&#xff09;、 2、3、4、5、6、7、 第三…...

低代码平台框架:开源选型、实践与应用深度解析

文章目录 1.1 低代码平台的重要性与应用背景2.1 表单建模2.2 流程设计2.3 报表&#xff08;打印&#xff09;可视化2.4 代码生成器2.5 系统管理2.6 前端UI开源选型3.1 如何选择合适的开源框架3.2 市场上的主要开源低代码平台对比3.3 开源项目的技术栈与优缺点分析 5.1 成功案例…...

深度学习500问——Chapter12:网络搭建及训练(3)

文章目录 12.3.5 Caffe有哪些接口 12.4 网络搭建有什么原则 12.4.1 新手原则 12.4.2 深度优先原则 12.4.3 卷积核size一般为奇数 12.4.4 卷积核不是越大越好 12.5 有哪些经典的网络模型值得我们去学习的 12.6 网络训练有哪些技巧 12.6.1 合适的数据集 12.6.2 合适的预…...

Android使用DevRing框架搭建数据库实体类以及使用

一、引用DevRing依赖 //导入DevRing依赖implementation com.ljy.ring:devring:1.1.8创建数据库表的依赖implementation org.greenrobot:greendao:3.2.2 // add libraryimplementation org.greenrobot:greendao-generator:3.0.0 二、修改工程目录下的.idea->gradle.xml文件&…...

高效BUG管理:定级、分类和处理流程

高效BUG管理&#xff1a;定级、状态跟踪与处理全流程 前言一、BUG的定义二、BUG的定级三、BUG的状态四、BUG的处理流程1. BUG报告2. BUG确认3. BUG修复4. BUG验证5. BUG关闭 五、常见问题与解决方案六、总结 前言 在测试工作中&#xff0c;BUG的定级和分类是一个重要环节&…...

服务器数据恢复—raid5热备盘同步失败导致阵列崩溃如何恢复数据?

服务器存储数据恢复环境&故障&#xff1a; 某品牌DS5300存储&#xff0c;包含一个存储机头和多个磁盘柜&#xff0c;组建了多组RAID5磁盘阵列。 某个磁盘柜中的一组RAID5阵列由15块数据盘和1块热备硬盘组建。该磁盘柜中的某块硬盘离线&#xff0c;热备盘自动替换并开始同步…...

Ubuntu iso 镜像下载 步骤截图说明

Ubuntu镜像下载&#xff0c;在这个网址&#xff1a; Enterprise Open Source and Linux | Ubuntu 步骤如下图所示&#xff1a; 1、登入网址 2、点击Get Ubuntu 3、点击Download Ubuntu Desktop 后续点击Downloadload 24.04 LTS直接下载就行 如果需要下载其它版本&#xf…...

git拉取gitee项目到本地

git安装等不做赘述。 根据需要选择不同操作 1.只是单纯拉取个项目&#xff0c;没有后续的追踪等操作 不需要使用git init初始化本地文件夹 新建一个文件夹用于存储项目&#xff0c;右键选择 git bash here 会出现命令行窗口 如果像我一样&#xff0c;只是拉取个项目作业&…...

力扣42.接雨水

力扣42.接雨水 前后缀数组 对于每个一个位置 求其前面最高高度pre_max[i] max(pre_max[i-1] , h[i])和后面最高高度suf_max[i] max(suf_max[i1] , h[i])当前i处的水容量 为min(pre_max[i] , suf_max[i]) - h[i] class Solution {public:int trap(vector<int>& …...

国产数据库与MYSQL兼容性?开发应该怎么选择?

国产数据库主要包括以下几种&#xff1a; TiDB&#xff1a;由 PingCAP 公司研发设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库&#xff0c;兼容 MySQL&#xff0c;支持无限的水平扩展&#xff0c;具备强一致性和高可用等特性。 华为GaussDB…...

Spring框架中Bean的生命周期

Bean的生命周期通常指的是从创建到初始化&#xff0c;经过一系列的流程&#xff0c;最终销毁的过程。只不过&#xff0c;在Spring框架中&#xff0c;Bean的生命周期是由Spring IOC容器来管理的。在Spring中&#xff0c;我们定义Bean时&#xff0c;也可以自己指定初始化和销毁的…...

从零到一学FFmpeg:avformat_alloc_output_context2 函数详析与实战

文章目录 前言一、函数原型二、功能描述三、使用场景四、AVFormatContext 结构体五、代码实例 前言 avformat_alloc_output_context2 是FFmpeg库中的一个函数&#xff0c;用于为输出多媒体文件初始化一个AVFormatContext结构体。这个函数在开始输出音频、视频数据到文件之前被…...

Lua 绕过元表

Lua 绕过元表&#xff0c;直接访问 table 的字段。 绕过元表 rawset(table, index, value)&#xff0c;在不触发元方法的情况下&#xff0c;设置 table[index] 的值为 value。 rawget(table, index)&#xff0c;在不触发元方法的情况下&#xff0c;获取 table[index] 的值。…...

pip方法总结(极简快速掌握)

pip是Python的包管理工具&#xff0c;它允许用户从PyPI等源安装和管理额外的库和依赖。以下是关于pip使用方法的详细总结&#xff0c;同时附上代码演示&#xff1a; 一、pip的基本功能 安装包&#xff1a;使用pip install 包名命令可以安装指定的Python包。例如&#xff0c;要…...

Vibe coding对程序员的影响

一、深化核心能力数学与算法基础掌握离散数学、概率论等基础理论熟练应用动态规划、图论等算法范式示例&#xff1a;优化算法时间复杂度 O(n\log n)--O(n)系统设计能力理解计算机组成原理与操作系统机制构建高可用分布式系统&#xff08;如CAP定理&#xff09;二、适应技术演进…...

AI能力已经成为2026年的分水岭:2026年企业如何选对人力资源管理平台

HR SaaS系统是基于云端部署的人力资源管理软件&#xff0c;帮助企业实现招聘、人事、绩效、薪酬等HR业务的数字化管理。2026年的HR SaaS已经从传统的流程工具进化为AI驱动的智能管理平台&#xff0c;能够自动处理简历筛选、智能推荐人才、生成绩效面谈纪要等复杂任务&#xff0…...

AI 焦虑别乱投!3 个问题秒懂要不要养「虾」

作者 | 张辉清 责编 | 梦依丹出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;当下 AI 热度居高不下&#xff0c;企业该如何抉择&#xff1f;是大举投入布局&#xff0c;还是保持观望&#xff1f;我们借以下三个问题来展开思考。AI 当下处在什么阶段&#xf…...

Postman团队版协作踩坑实录:我们是如何被‘英文界面’拖慢项目进度的

Postman团队协作中的语言障碍&#xff1a;从踩坑到高效协同的实战指南 当敏捷开发团队遭遇API协作瓶颈&#xff0c;语言差异往往成为最隐蔽的效率杀手。某金融科技团队在季度冲刺阶段&#xff0c;因Postman英文界面导致的接口理解偏差&#xff0c;直接造成核心支付模块延期两周…...

别再手动写JSON Schema了!用智谱AI/DeepSeek的FunctionCall,5分钟搞定天气查询API对接

告别JSON Schema手写时代&#xff1a;用大模型FunctionCall极速对接天气API 开发聊天机器人时&#xff0c;最头疼的莫过于为每个新功能手动编写JSON Schema。上周我接手一个天气查询功能需求&#xff0c;原本预计要花半天时间定义参数结构、验证逻辑&#xff0c;结果用智谱AI的…...

Liquibase,数据库无关的版本控制工具!

在现代软件开发中&#xff0c;数据库的版本控制往往比代码版本控制更具挑战性。不同的开发环境、测试环境、生产环境可能使用不同的数据库产品&#xff08;如开发用H2、测试用MySQL、生产用PostgreSQL&#xff09;&#xff0c;而传统的SQL脚本往往包含特定数据库的方言&#xf…...

ai辅助开发新体验:在快马平台用对话创建智能天气应用

最近在做一个天气应用的小项目时&#xff0c;遇到了一个很实际的问题&#xff1a;GitHub经常打不开&#xff0c;导致想参考的开源代码库无法访问。这时候&#xff0c;我发现InsCode(快马)平台的AI辅助开发功能简直是个救星&#xff0c;完全改变了我的开发方式。 需求分析阶段 以…...

深度解析开源项目:NVIDIA Profile Inspector 完全指南与实战配置方案

深度解析开源项目&#xff1a;NVIDIA Profile Inspector 完全指南与实战配置方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector&#xff08;NPI&#xff09;是一款功能强大的…...

华硕笔记本风扇异常修复终极指南:用G-Helper轻松解决散热问题

华硕笔记本风扇异常修复终极指南&#xff1a;用G-Helper轻松解决散热问题 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, St…...

别再手动翻译Excel了!用Python+腾讯翻译API,5分钟搞定整张表格

别再手动翻译Excel了&#xff01;用Python腾讯翻译API&#xff0c;5分钟搞定整张表格 当产品经理收到海外用户反馈的CSV文件时&#xff0c;第一反应往往是打开翻译网站逐行复制粘贴。我曾见过同事花三小时处理200条英文评论&#xff0c;而同样的工作用Python脚本只需喝杯咖啡的…...