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

买卖股票的最佳时机(每日一题-简单)

题解:(自己写了一个暴力法,超时了,但是也记录一下)

思路:用两个for循环,求解第一天买入之后,可以卖出的最大价格,最后求出这些价格的最大值。

class Solution {public int maxProfit(int[] prices) {int res1=0;for(int i=0;i<prices.length-1;i++){int res=0;for(int j=i+1;j<prices.length;j++){if(prices[j]>prices[i]){res=Math.max(prices[j]-prices[i],res);}}prices[i]=res;res1=Math.max(res1,prices[i]);}return res1;}
}

看其他题解发现只需要一次for循环即可求出答案:

初始化两个int变量,一个用来存储最低价格,一个用来存储最高利润。

最低价格变量可以初始化为prices[0],也就是第一天的价格。最高利润初始化为0;

在for循环遍历过程中,不断更新最低价格以及最高利润。

最低价格就是判断price[i]和之前的最低价格哪个更小,就选哪个。

最高利润就是判断第i天卖出股票的利润和之前的最高利润哪个高,就选哪个。

代码:

class Solution {public int maxProfit(int[] prices) {int cost=prices[0];int res=0;for(int i=0;i<prices.length;i++){cost=Math.min(cost,prices[i]);res=Math.max(prices[i]-cost,res);}return res;}
}

http://www.xdnf.cn/news/1011.html

相关文章:

  • SpringBoot中,声明式事务的使用
  • 文字、语音、图片、视频四个模态两两之间(共16种转换方向)的生成技术及理论基础的详细说明及表格总结
  • 【漫话机器学习系列】216.应对高方差(过拟合)的策略详解(Strategies When You Have High Variance)
  • 线上地图导航小程序源码介绍
  • uCOS3实时操作系统(任务切换和任务API函数)
  • MD5和sha1绕过方式总结
  • 第六章.java集合与泛型
  • 街景主观感知全流程(自建数据集+两两对比程序+Trueskill计算评分代码+训练模型+大规模预测)17
  • 冒泡排序详解
  • 使用若依二次开发商城系统-1
  • vue项目通过GetCapabilities获取wmts服务元数据信息并在openlayers进行叠加显示
  • 配置管理CM
  • 衡石chatbi如何通过 iframe 集成
  • 制作一款打飞机游戏14:资源优化
  • Nginx下搭建rtmp流媒体服务 并使用HLS或者OBS测试
  • 性能比拼: Nginx vs Caddy
  • NHANES指标推荐:PhenoAge
  • Ldap高效数据同步- Delta-Syncrepl复制模式配置实战手册(上)
  • 极验4滑块笔记:整理思路--填坑各种问题
  • 傲来云分享,负载均衡:提升网站性能与稳定性
  • 无人机飞控运行在stm32上的RTOS实时操作系统上,而不是linux这种非实时操作系统的必要性
  • 【前端】【面试】【业务场景】前端如何获取并生成设备唯一标识
  • 报错 | 配置 postcss 出现 报错:A `require()` style import is forbidden.
  • C++中的算术转换、其他隐式类型转换和显示转换详解
  • 开发指南:构建结合数字孪生、大语言模型与知识图谱的智能设备日志分析及生产异常预警系统
  • ByteTrack自定义数据集训练指南
  • 如何将SpringBoot前后端项目制作成windows运行的exe文件
  • 【python实用小脚本系列】用Python让鼠标“动起来”:光标自动移动、自动点击、自动图象识别的小技巧
  • 【教程】Digispark实现串口通信
  • 计算机是如何工作的