买卖股票的最佳时机——力扣121题
买卖股票的最佳时机——力扣121题
暴力解法
从前往后,不断将元素之间进行两两比较(类似冒泡排序中),然后不断更新出maxProfit的值。例如数组[7,1,5,3,6,4]中,从7开始,则7 -> 4 元素最大记录为0,从1 -> 6的过程中,maxProfit又会从4 -> 5,也即最终的结果。该方法的时间复杂度为O(n2):
代码如下
class Solution {public int maxProfit(int[] prices) {int maxProfit = 0;for (int i = 0; i < prices.length - 1; i++) {for (int j = i + 1; j < prices.length; j++) {int profit = prices[j] - prices[i];if ( profit> maxProfit) {maxProfit = profit;}}}return maxProfit;}
}
一次遍历法
在一个数组中,从前往后是每天股票的价位,我们可以在遍历的同时记录下当前最低的价格,在遍历中,与后面的股票价格进行差值得到当前的最大利润,所以时时刻刻得到的都是记录当前的最大利润。
代码如下
class Solution {public int maxProfit(int[] prices) {int minPrice = Integer.MAX_VALUE;int maxProfit = 0;for (int i = 0; i < prices.length; i++) {if (prices[i] < minPrice) {minPrice = prices[i];} else if(prices[i] - minPrice > maxProfit) {maxProfit = prices[i] - minPrice;}}return maxProfit;}
}
买卖股票的最佳时机——力扣121题相关推荐
- 力扣121题买卖股票的最佳时机 简单容易明白
博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...
- 力扣121题 “买卖股票的最 佳时机”
1.题目描述(难度 简单) 样例: 数据范围 2.题目解析 方法一:用两个变量记录当前股票最小价格和,如果当前卖掉的最大利润,然后遍历数组的时候不断更新,最后输出的最大利润则是题目答案.c++代码如下 ...
- Leetcode 122.买卖股票的最佳时机 II (每日一题 20210618)
给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票).注意:你不能同时参与多 ...
- 力扣刷题day42|121买卖股票的最佳时机、122买卖股票的最佳时机II
文章目录 121. 买卖股票的最佳时机 贪心思路 动态规划思路 动态规划五部曲 122. 买卖股票的最佳时机II 贪心思路 动态规划思路 动态规划五部曲 121. 买卖股票的最佳时机 力扣题目链接 给 ...
- 力扣刷题记录-动态规划问题总结
百度百科里对于动态规划问题是这样解释的: 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.因此各个阶段 ...
- 20190808:买卖股票的最佳时机
买卖股票的最佳时机 买卖股票的最佳时机 大致思路 代码实现 买卖股票的最佳时机 力扣简单习题1: 力扣简单习题2: 大致思路 两题的区别是,第一题只进行一次交易,第二题可以多次交易 第一题:遍历时随时 ...
- 算法训练Day49 | Leetcode121. 买卖股票的最佳时机(只能买卖一次);LeetCode122. 买卖股票的最佳时机II(可以买卖多次)
目录 Leetcode121. 买卖股票的最佳时机 方法一:暴力解法 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 方法二:贪心算法 1. 思路 2. 代码实现 3. 复杂度分析 方 ...
- 买卖股票的最佳时机 I II III IV
121. 买卖股票的最佳时机 自己的思路:采用求最长连续子串和题目的思路 class Solution {public int maxProfit(int[] prices) {if(prices.l ...
- 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
<LeetCode力扣练习>第121题 买卖股票的最佳时机 Java 一.资源 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价 ...
最新文章
- 比Momentum更快:揭开Nesterov Accelerated Gradient的真面目NAG 梯度下降
- ipfs浏览器java实现_IPFS + Ethereum(上篇):JS+IPFS-API存储和获取数据
- c#调用Matlab的参数传递
- 广东省工业和信息化厅关于印发广东省 5G 基站和数据中心总体布局规划 (2021-2025 年)的通知...
- 让OA选型与实施不再苦口难言
- webx学习(四)——ResourceLoadingService
- 简单的java信息显示_JSP实现简单的用户登录并显示出用户信息的方法
- bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
- mac电脑的磁盘空间变得越来越小
- lr压测mysql数据库_MySQL数据库性能测试的方法
- 微信小程序云开发教程-产品原型的意义
- vtuber面部捕捉工具_NOKOV(度量)动作捕捉携专业虚拟直播解决方案亮相世界VR产业大会...
- 基于Android的公交线路查询系统设计与实现
- Tp5设置参数全局过滤方法
- 编译原理笔记 导言和目录
- My sql 统计一个字段某种类型的总数(非group by)
- OLAP、OLTP的介绍和比较
- mysql数据库有关教程
- JavaScript【判断一个数是否是素数】函数实现
- C++ Reference: Standard C++ Library reference: C Library: cstdio