青岛cms建站系统wordpress wp_rewrite

张小明 2026/1/9 10:55:42
青岛cms建站系统,wordpress wp_rewrite,青岛做网站的,工地临时工400元一天买卖股票的最佳时机含手续费 问题描述 给定一个整数数组 prices#xff0c;其中 prices[i] 表示第 i 天的股票价格#xff1b;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易#xff0c;但是你每笔交易都需要付手续费。如果你已经购买了一个股票#xff0c;在…买卖股票的最佳时机含手续费问题描述给定一个整数数组prices其中prices[i]表示第i天的股票价格整数fee代表了交易股票的手续费用。你可以无限次地完成交易但是你每笔交易都需要付手续费。如果你已经购买了一个股票在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意这里的一笔交易指买入股票然后卖出股票的整个过程。示例输入: prices [1, 3, 2, 8, 4, 9], fee 2 输出: 8 解释: 能够达到的最大利润: 在此处买入 prices[0] 1 在此处卖出 prices[3] 8 交易利润: 8 - 1 - 2 5 在此处买入 prices[4] 4 在此处卖出 prices[5] 9 交易利润: 9 - 4 - 2 3 总利润: 5 3 8 输入: prices [1,3,7,5,10,3], fee 3 输出: 6 解释: 最优策略是买入1卖出10利润: 10-1-36算法思路核心思想每一天只有两种状态持有股票hold手上持有一股股票不持有股票sold手上没有股票状态转移方程持有状态hold要么之前就持有今天继续持有hold hold要么今天买入hold sold - price[i]取最大值hold max(hold, sold - price[i])不持有状态sold要么之前就不持有今天继续不持有sold sold要么今天卖出需要支付手续费sold hold price[i] - fee取最大值sold max(sold, hold price[i] - fee)初始化第一天持有hold -prices[0]买入股票第一天不持有sold 0什么也不做结果最后一天不持有股票的状态sold因为持有股票肯定不如卖出后获得现金代码实现方法一动态规划classSolution{/** * 计算含手续费的股票交易最大利润 * * param prices 股票价格数组 * param fee 交易手续费 * return 最大利润 */publicintmaxProfit(int[]prices,intfee){if(pricesnull||prices.length1){return0;}// 初始化状态inthold-prices[0];// 持有股票的最大利润intsold0;// 不持有股票的最大利润// 从第二天开始遍历for(inti1;iprices.length;i){// 保存前一天的hold状态因为会被更新intprevHoldhold;// 更新持有状态继续持有 或 买入股票holdMath.max(hold,sold-prices[i]);// 更新不持有状态继续不持有 或 卖出股票支付手续费soldMath.max(sold,prevHoldprices[i]-fee);}// 最终状态是不持有股票returnsold;}}方法二优化classSolution{/** * 直接使用变量更新无需额外空间 */publicintmaxProfit(int[]prices,intfee){if(prices.length1){return0;}inthold-prices[0];intsold0;for(inti1;iprices.length;i){// 这里需要先计算新的sold再更新holdintnewHoldMath.max(hold,sold-prices[i]);intnewSoldMath.max(sold,holdprices[i]-fee);holdnewHold;soldnewSold;}returnsold;}}算法分析时间复杂度O(n)n是价格数组的长度只需要遍历一次空间复杂度O(1)只使用常数个额外变量算法过程1prices [1,3,7,5,10,3], fee 3过程第0天hold-1, sold0第1天hold-1, soldmax(0, -13-3)0第2天hold-1, soldmax(0, -17-3)3第3天holdmax(-1, 3-5)-1, sold3第4天hold-1, soldmax(3, -110-3)6第5天holdmax(-1, 6-3)3, sold6最终结果6测试用例publicclassTestMaxProfit{publicstaticvoidmain(String[]args){SolutionsolutionnewSolution();// 测试用例1标准示例1int[]prices1{1,3,2,8,4,9};intfee12;System.out.println(Test 1: solution.maxProfit(prices1,fee1));// 8// 测试用例2标准示例2int[]prices2{1,3,7,5,10,3};intfee23;System.out.println(Test 2: solution.maxProfit(prices2,fee2));// 6// 测试用例3单天int[]prices3{1};intfee31;System.out.println(Test 3: solution.maxProfit(prices3,fee3));// 0// 测试用例4两天无利润int[]prices4{5,4};intfee41;System.out.println(Test 4: solution.maxProfit(prices4,fee4));// 0// 测试用例5两天有利润int[]prices5{1,5};intfee52;System.out.println(Test 5: solution.maxProfit(prices5,fee5));// 2 (5-1-22)// 测试用例6手续费很高int[]prices6{1,5,10};intfee610;System.out.println(Test 6: solution.maxProfit(prices6,fee6));// 0// 测试用例7递增序列int[]prices7{1,2,3,4,5};intfee71;System.out.println(Test 7: solution.maxProfit(prices7,fee7));// 3 (5-1-13)// 测试用例8递减序列int[]prices8{5,4,3,2,1};intfee81;System.out.println(Test 8: solution.maxProfit(prices8,fee8));// 0}}关键点状态定义hold表示持有股票时的最大利润可能是负数sold表示不持有股票时的最大利润始终≥0手续费手续费在卖出时扣除初始化第一天持有股票的成本是-prices[0]第一天不持有股票的利润是0最终状态最后一天应该不持有股票因为持有股票不如卖出所以返回sold而不是max(hold, sold)常见问题为什么手续费只在卖出时扣除规定每笔交易都需要手续费一笔交易包括买入和卖出在动态规划中可以在买入或卖出时扣除效果相同选择在卖出时扣除更符合实际交易场景能否在同一天买入和卖出这样会损失手续费不会是最优解
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

帮别做网站网站开发是什么职业

利用人工智能提升软件项目管理效率 关键词:人工智能、软件项目管理、效率提升、项目进度预测、风险管理 摘要:本文聚焦于利用人工智能提升软件项目管理效率这一核心主题。首先介绍了研究的背景、目的、预期读者、文档结构和相关术语。接着阐述了人工智能…

张小明 2026/1/3 1:21:41 网站建设

湖南北山建设集团网站网站管理助手未找到iis

Qwen图像编辑快速解决方案:4步打造专业级视觉内容 【免费下载链接】Qwen-Image-Edit-Rapid-AIO 项目地址: https://ai.gitcode.com/hf_mirrors/Phr00t/Qwen-Image-Edit-Rapid-AIO 还在为复杂的图像编辑流程头疼吗?🤔 每天面对重复的设…

张小明 2026/1/4 21:31:08 网站建设

龙港哪里有做百度网站的怎么做一个公众号

如何转行黑客/网络安全行业?从0开始保姆级讲解! 网络安全技术被广泛应用于各个领域,各大企业都在争抢网络安全人才,这使得网络安全人才的薪资一涨再涨,想转行网络安全开发的人也越来越多。而想要顺利转行网络安全开发&…

张小明 2026/1/4 3:26:14 网站建设

给学校建网站那个系统好智通人才招聘网东莞

PaddlePaddle财经资讯自动播报系统 在金融信息爆炸的时代,交易员每天要面对成百上千条公告、研报和新闻。一条关于央行降准的PDF文件深夜发布,一张财报截图在微信群疯传——这些非结构化数据如何快速转化为可听、可读、可决策的信息?传统方式…

张小明 2026/1/4 21:31:04 网站建设

做深度报道的网站网站开发包括

电脑用户账户管理与桌面个性化设置全攻略 1. 用户账户管理 1.1 删除用户账户 删除用户账户时,该账户内的所有文档、电子邮件和设置都会被删除。若电脑自带通用的管理员或所有者账户,而你想使用自己名字的账户,更改现有账户名称是更好的选择,这样不会丢失任何文件或设置。…

张小明 2026/1/4 21:31:01 网站建设

河南住房与城乡建设厅网站东莞市seo网络推广平台

NCMconverter:解锁网易云音乐加密文件的专业解决方案 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 当你从网易云音乐下载了心仪的歌曲,却发现它们被保存…

张小明 2026/1/4 21:30:59 网站建设