免费网络推广网站大全校园推广

张小明 2025/12/27 13:51:57
免费网络推广网站大全,校园推广,电脑上不了建设厅网站,做流量网站挂广告还能挣钱吗题目描述给定一个整数数组 prices#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。在每一天#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。然而#xff0c;你可以在 同一天 多次买卖该股票#xff0c;但要确保你持有的股票不…题目描述给定一个整数数组prices其中prices[i]表示某支股票第i天的价格。在每一天你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。然而你可以在同一天多次买卖该股票但要确保你持有的股票不超过一股。返回你能获得的最大利润。示例 1text输入prices [7,1,5,3,6,4] 输出7 解释在第 2 天买入第 3 天卖出利润 5-14 在第 4 天买入第 5 天卖出利润 6-33 总利润 437示例 2text输入prices [1,2,3,4,5] 输出4 解释在第 1 天买入第 5 天卖出利润 5-14 注意你不能在第 1 天和第 2 天连续买入股票示例 3text输入prices [7,6,4,3,1] 输出0 解释没有交易完成最大利润为 0解法一贪心算法面试推荐⭐核心思想只要今天的价格比昨天高就昨天买入今天卖出。虽然这看起来像是频繁交易但数学上等价于在价格上升波段的最低点买入、最高点卖出。算法步骤从第二天开始遍历价格数组计算当天与前一天的价格差如果价格差为正当天价格 前一天价格则累加到总利润中返回总利润代码实现javaclass Solution { public int maxProfit(int[] prices) { int profit 0; for (int i 1; i prices.length; i) { int diff prices[i] - prices[i - 1]; if (diff 0) { profit diff; } } return profit; } }复杂度分析时间复杂度O(n)只需遍历一次数组空间复杂度O(1)只使用了常数级别的额外空间为什么这是正确的考虑价格序列 [1, 3, 5]贪心算法第1天买入第2天卖出利润2第2天买入第3天卖出利润2总利润4最优策略第1天买入第3天卖出总利润4两种策略结果相同因为 (5-1) (3-1) (5-3)解法二动态规划通用解法核心思想定义两个状态dp[i][0]第i天结束时不持有股票的最大利润dp[i][1]第i天结束时持有股票的最大利润状态转移方程textdp[i][0] max(dp[i-1][0], dp[i-1][1] prices[i]) // 保持空仓或卖出 dp[i][1] max(dp[i-1][1], dp[i-1][0] - prices[i]) // 保持持有或买入代码实现javaclass Solution { public int maxProfit(int[] prices) { int n prices.length; int[][] dp new int[n][2]; dp[0][0] 0; // 第一天不持有股票 dp[0][1] -prices[0]; // 第一天持有股票需要买入 for (int i 1; i n; i) { dp[i][0] Math.max(dp[i-1][0], dp[i-1][1] prices[i]); dp[i][1] Math.max(dp[i-1][1], dp[i-1][0] - prices[i]); } return dp[n-1][0]; // 最后一天不持有股票时利润最大 } }空间优化版本javaclass Solution { public int maxProfit(int[] prices) { int hold -prices[0]; // 持有股票的最大利润 int notHold 0; // 不持有股票的最大利润 for (int i 1; i prices.length; i) { int prevHold hold; hold Math.max(hold, notHold - prices[i]); notHold Math.max(notHold, prevHold prices[i]); } return notHold; } }复杂度分析时间复杂度O(n)空间复杂度未优化版本 O(n)优化版本 O(1)解法三峰谷法直观理解核心思想寻找价格序列中的连续上升波段在每个波段的谷底买入、峰顶卖出。算法步骤初始化利润为0指针i从0开始寻找价格低谷价格开始上升的点寻找价格高峰价格开始下降的点计算峰谷差值并累加到利润重复直到遍历完整个数组代码实现javaclass Solution { public int maxProfit(int[] prices) { int profit 0; int i 0; int n prices.length; while (i n - 1) { // 寻找低谷价格停止下降的点 while (i n - 1 prices[i] prices[i 1]) { i; } int valley prices[i]; // 寻找高峰价格停止上升的点 while (i n - 1 prices[i] prices[i 1]) { i; } int peak prices[i]; profit peak - valley; } return profit; } }复杂度分析时间复杂度O(n)每个元素最多被访问两次空间复杂度O(1)面试推荐写法首推贪心算法 ✅原因代码最简洁仅5-7行时间空间复杂度最优容易理解和解释面试中快速写出并分析正确性面试回答模板这道题可以使用贪心算法解决。核心思想是只要第二天的价格比第一天高就把这个差价算作利润。虽然看起来像是频繁交易但实际上等价于在价格上升波段中一直持有股票。算法的时间复杂度是O(n)空间复杂度是O(1)。备选动态规划如果面试官要求更通用的解法或者后续问题扩展如含交易费、冷冻期等可以使用动态规划解法。扩展思考如果加上交易手续费每次卖出时扣除手续费javapublic int maxProfit(int[] prices, int fee) { int hold -prices[0]; int notHold 0; for (int i 1; i prices.length; i) { hold Math.max(hold, notHold - prices[i]); notHold Math.max(notHold, hold prices[i] - fee); } return notHold; }如果加上冷冻期卖出后需要等待一天才能买入javapublic int maxProfit(int[] prices) { if (prices.length 1) return 0; int hold -prices[0]; int notHold 0; int coolDown 0; // 冷冻期 for (int i 1; i prices.length; i) { int prevHold hold; hold Math.max(hold, coolDown - prices[i]); coolDown notHold; notHold Math.max(notHold, prevHold prices[i]); } return notHold; }总结解法时间复杂度空间复杂度推荐指数适用场景贪心算法O(n)O(1)⭐⭐⭐⭐⭐面试首选代码简洁高效动态规划O(n)O(1)~O(n)⭐⭐⭐⭐通用性强可扩展峰谷法O(n)O(1)⭐⭐⭐直观理解价格波段关键点贪心算法是本题的最优解法动态规划是解决股票问题的通用框架理解贪心算法的正确性多次买卖的总利润等于所有上升波段差值的和在面试中建议先给出贪心解法然后如果时间允许或面试官要求再讨论动态规划解法以展示你的全面性。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

外贸公司介绍宁波网络推广优化公司

SUSE Linux Enterprise Server 10 中 Xen 虚拟化技术全面解析 1. SUSE Linux Enterprise Server 10 在线资源 Novell 为用户提供了丰富的在线资源,以协助配置和实施 SUSE Linux Enterprise Server 10,这些资源包括: - SUSE Linux Enterprise Server 10 主页 - SUSE L…

张小明 2025/12/26 11:45:04 网站建设

重庆市建设工程造价管理总网站做吃穿住行网站

Bruno Flutter组件库:新手如何快速上手企业级移动端开发 【免费下载链接】bruno An enterprise-class package of Flutter components for mobile applications. ( Bruno 是基于一整套设计体系的 Flutter 组件库。) 项目地址: https://gitcode.com/gh_mirrors/bru…

张小明 2025/12/26 9:53:45 网站建设

关于门户网站建设经费的报告wordpress怎么搜索网站

双目相机视差算法原理 双目相机视差算法基于视差原理和三角测量原理来实现对物体深度的测量,以下是详细解释: 视差原理 双目相机由两个并排放置的摄像头组成,二者之间存在固定的基线距离 BBB。当观察空间中的一个点 PPP 时,该点会…

张小明 2025/12/27 4:40:54 网站建设

wordpress建站侵权商城网站建设教程

ncmdump终极指南:轻松实现音乐格式解密转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的音乐只能在特定平台播放而烦恼吗?音乐格式解密工具ncmdump让你彻底告别NCM文件转换的困扰,…

张小明 2025/12/27 7:55:13 网站建设

用wordpress搭建娱乐网济南网络推广seo

作为开发者、内容创作者或职场人,日常总会遇到图片处理需求 —— 老照片修复、商品图抠图、低清图高清化,要么靠复杂 PS 耗时费力,要么付费工具成本太高。其实用 AIEnhancer.ai 按 “选场景→验效果→优流程” 的思路,就能零门槛实…

张小明 2025/12/26 18:38:57 网站建设

国外网站如何做seo成都消防设计公司

qt例程~基于Modbus的电机控制上位机程序 功能包括: 1、基于委托的表格自定义样式; 2、基于Modbus的电机配置文件读取和写入; 3、电机状态的实时显示。 在工业控制领域,基于Modbus协议的电机控制上位机程序至关重要。今…

张小明 2025/12/27 7:55:44 网站建设