121. 买卖股票的最佳时机

embedded/2024/10/11 9:26:46/

121. 买卖股票的最佳时机

  • 原题链接:
  • 完成情况:
  • 解题思路:
  • 参考代码:
    • _121买卖股票的最佳时机
  • 错误经验吸取

原题链接:

121. 买卖股票的最佳时机

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/

完成情况:

在这里插入图片描述

解题思路:

这段代码的目的是解决LeetCode上的第121题“买卖股票的最佳时机”。题目要求你设计一个算法来计算你所能获取的最大利润。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。

代码的核心思想是找到一个买入的最小值,然后在后续的价格中找到最大的利润值。具体的步骤如下:

  1. 初始化变量

    java">int minPrice = Integer.MAX_VALUE;
    int maxProfit = 0;
    
    • minPrice 初始化为整数的最大值,用于存储遍历过程中的最低股票价格。
    • maxProfit 初始化为0,用于存储遍历过程中的最大利润。
  2. 遍历价格数组

    java">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;}
    }
    
    • 循环遍历每一天的股票价格。
    • 如果当前价格 prices[i] 小于 minPrice,更新 minPrice 为当前价格。这一步确保我们找到最低的买入价格。
    • 否则,计算当前价格 prices[i]minPrice 的差值(即当前可能的利润),如果这个利润大于 maxProfit,则更新 maxProfit
  3. 返回结果

    java">return maxProfit;
    
    • 遍历结束后,返回 maxProfit,即能获得的最大利润。

总结:这段代码的时间复杂度是 O(n),因为它只需要遍历一次价格数组。通过在遍历的过程中不断更新最低买入价格和最大利润,它能够在一次遍历中找到最佳的买卖时机。

参考代码:

_121买卖股票的最佳时机

java">package leetcode板块;public class _121买卖股票的最佳时机 {/**** @param prices* @return*/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;}
}

错误经验吸取


http://www.ppmy.cn/embedded/50580.html

相关文章

【源码】SpringBoot编程式事务使用及执行原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 5、【源码】Spring事务之传播特性的详解 6、【源码】Spring事务之…

R语言ggHoriPlot包绘制地平线图

数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 关键词“地平线图” 1. 数据读取与处理 首先&#xff0c;从TSV文件中读取数据&#xff0c;并进行数据清洗和处理。 rm(listls()) pacman::p_load(tidyverse,ggalt,ggHoriPlot,hrbrthemes…

Laravel 的事件监听器与服务提供者和服务容器的二三事

一. Laravel 的事件监听器与服务提供者和服务容器有密切的关系。 服务提供者用于注册服务、绑定依赖关系以及执行框架的初始化设置。在服务提供者的 register 方法中&#xff0c;可以注册事件和事件监听器。 服务容器则负责管理对象的创建和依赖注入。事件监听器通常会被注册…

Java面试题--JVM大厂篇之深入了解Java虚拟机(JVM):工作机制与优化策略

引言&#xff1a; Java虚拟机&#xff08;Java Virtual Machine&#xff0c;简称JVM&#xff09;是Java程序员绕不开的主题。作为Java语言的执行平台&#xff0c;JVM不仅为Java程序提供了平台无关性&#xff0c;还承担了内存管理、线程管理和垃圾回收等复杂任务。了解JVM的工作…

java技术专家面试指南80问【java学习+面试宝典】(二)

unzip 命令 解压 *.zip 文件&#xff1a;unzip test.zip 。 查看 *.zip 文件的内容&#xff1a;unzip -l jasper.zip 。 什么Docker Docker是一个容器化平台&#xff0c;它以容器的形式将您的应用程序及其所有依赖项打包在一起&#xff0c;以确保您的应用程序在任何环境中无…

算法第9章 图算法设计

7-1 旅游规划 #include <iostream> #include <algorithm> #include <cstring> using namespace std; typedef pair<int,int> PII; const int N 510; int g[N][N]; int n,m,s,d; int dist[N]; int w[N],t[N][N]; bool st[N]; void dijkstra(){ memset…

智能语音新革命:有道与Azure的API服务对决

在当今技术飞速发展的时代&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为连接不同软件和服务的桥梁。无论是开发移动应用、构建网页服务&#xff0c;还是实现物联网设备的互联互通&#xff0c;API都在其中扮演着不可或缺的角色。随着市场上各种API接口的涌现&am…

王思聪隐形女儿曝光

王思聪"隐形"女儿曝光&#xff01;黄一鸣独自面对怀孕风波&#xff0c;坚持生下爱情结晶近日&#xff0c;娱乐圈掀起了一场惊天波澜&#xff01;前王思聪绯闻女友黄一鸣在接受专访时&#xff0c;大胆揭露了她与王思聪之间的爱恨纠葛&#xff0c;并首度公开承认&#…