买卖股票的最佳时机——力扣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题相关推荐

  1. 力扣121题买卖股票的最佳时机 简单容易明白

    博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言.有啥不会的题也可以留言,仅限于简单与中等难度的. 愿我们变的越来越好 有啥不明白的评论区留 ...

  2. 力扣121题 “买卖股票的最 佳时机”

    1.题目描述(难度 简单) 样例: 数据范围 2.题目解析 方法一:用两个变量记录当前股票最小价格和,如果当前卖掉的最大利润,然后遍历数组的时候不断更新,最后输出的最大利润则是题目答案.c++代码如下 ...

  3. Leetcode 122.买卖股票的最佳时机 II (每日一题 20210618)

    给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票).注意:你不能同时参与多 ...

  4. 力扣刷题day42|121买卖股票的最佳时机、122买卖股票的最佳时机II

    文章目录 121. 买卖股票的最佳时机 贪心思路 动态规划思路 动态规划五部曲 122. 买卖股票的最佳时机II 贪心思路 动态规划思路 动态规划五部曲 121. 买卖股票的最佳时机 力扣题目链接 给 ...

  5. 力扣刷题记录-动态规划问题总结

    百度百科里对于动态规划问题是这样解释的: 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.因此各个阶段 ...

  6. 20190808:买卖股票的最佳时机

    买卖股票的最佳时机 买卖股票的最佳时机 大致思路 代码实现 买卖股票的最佳时机 力扣简单习题1: 力扣简单习题2: 大致思路 两题的区别是,第一题只进行一次交易,第二题可以多次交易 第一题:遍历时随时 ...

  7. 算法训练Day49 | Leetcode121. 买卖股票的最佳时机(只能买卖一次);LeetCode122. 买卖股票的最佳时机II(可以买卖多次)

    目录 Leetcode121. 买卖股票的最佳时机 方法一:暴力解法 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 方法二:贪心算法 1. 思路 2. 代码实现 3. 复杂度分析 方 ...

  8. 买卖股票的最佳时机 I II III IV

    121. 买卖股票的最佳时机 自己的思路:采用求最长连续子串和题目的思路 class Solution {public int maxProfit(int[] prices) {if(prices.l ...

  9. 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java

    <LeetCode力扣练习>第121题 买卖股票的最佳时机 Java 一.资源 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价 ...

最新文章

  1. 比Momentum更快:揭开Nesterov Accelerated Gradient的真面目NAG 梯度下降
  2. ipfs浏览器java实现_IPFS + Ethereum(上篇):JS+IPFS-API存储和获取数据
  3. c#调用Matlab的参数传递
  4. 广东省工业和信息化厅关于印发广东省 5G 基站和数据中心总体布局规划 (2021-2025 年)的通知...
  5. 让OA选型与实施不再苦口难言
  6. webx学习(四)——ResourceLoadingService
  7. 简单的java信息显示_JSP实现简单的用户登录并显示出用户信息的方法
  8. bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
  9. mac电脑的磁盘空间变得越来越小
  10. lr压测mysql数据库_MySQL数据库性能测试的方法
  11. 微信小程序云开发教程-产品原型的意义
  12. vtuber面部捕捉工具_NOKOV(度量)动作捕捉携专业虚拟直播解决方案亮相世界VR产业大会...
  13. 基于Android的公交线路查询系统设计与实现
  14. Tp5设置参数全局过滤方法
  15. 编译原理笔记 导言和目录
  16. My sql 统计一个字段某种类型的总数(非group by)
  17. OLAP、OLTP的介绍和比较
  18. mysql数据库有关教程
  19. JavaScript【判断一个数是否是素数】函数实现
  20. C++ Reference: Standard C++ Library reference: C Library: cstdio

热门文章

  1. c语言程序功能简介怎么写,电脑编程c语言
  2. Linux操作系统与Shell编程
  3. flex-flex属性
  4. uni-app学习之旅(二)uni-app开发规范
  5. 智慧水务信息化平台建设,实现供水一体化管控
  6. 计算机左侧没有桌面菜单栏,AI软件左侧的工具栏不见了没有了怎么显示出来
  7. 多线程爬取网易云音乐热歌榜 200首音乐
  8. 在windbg调试的时候 针对ecx和eax说明
  9. 记微博上一次“落荒而逃”
  10. 2008 mysql 本地安全_apache在windows2003或win2008环境中的安全设置