C++实现LeetCode(121.买卖股票的最佳时间)

 更新时间:2021年07月26日 15:01:26   作者:Grandyang  
这篇文章主要介绍了C++实现LeetCode(121.买卖股票的最佳时间),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

[LeetCode] 121.Best Time to Buy and Sell Stock 买卖股票的最佳时间

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

这道题相当简单,感觉达不到Medium的难度,只需要遍历一次数组,用一个变量记录遍历过数中的最小值,然后每次计算当前值和这个最小值之间的差值最为利润,然后每次选较大的利润来更新。当遍历完成后当前利润即为所求,代码如下:

C++ 解法:

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0, buy = INT_MAX;
        for (int price : prices) {
            buy = min(buy, price);
            res = max(res, price - buy);
        }
        return res;
    }
};

Java 解法:

public class Solution {
    public int maxProfit(int[] prices) {
        int res = 0, buy = Integer.MAX_VALUE;
        for (int price : prices) {
            buy = Math.min(buy, price);
            res = Math.max(res, price - buy);
        }
        return res;
    }
}

类似题目:

Best Time to Buy and Sell Stock with Cooldown

Best Time to Buy and Sell Stock IV

Best Time to Buy and Sell Stock III

Best Time to Buy and Sell Stock II

到此这篇关于C++实现LeetCode(121.买卖股票的最佳时间)的文章就介绍到这了,更多相关C++实现买卖股票的最佳时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中字符串查找操作的两则实例分享

    C++中字符串查找操作的两则实例分享

    这篇文章主要介绍了C++中字符串的查找操作的两则实例分享,分别是找到第一个只出现一次的字符以及找出连续最长的数字串的方法,需要的朋友可以参考下
    2016-02-02
  • 如何利用C语言输出3D立体感心形图详解

    如何利用C语言输出3D立体感心形图详解

    其实我们在程序中也有很多乐趣的,只是很多人不善于发现,这篇文章主要给大家介绍了关于C语言输出3D立体感心形图的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • C语言中字符串常用操作总结

    C语言中字符串常用操作总结

    C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等,本文将介绍 C语言中字符串的相关知识,包括字符串的定义、初始化、赋值等,需要的可以参考一下
    2023-05-05
  • C++超详细讲解字符串类

    C++超详细讲解字符串类

    在C++中只有一个字符串类,即basic_string,其管理着一个 '\0' 结尾的字符数组。头文件:#include <string>,string类支持两种输入方式:cin方式和getline()方式
    2022-06-06
  • C语言详细讲解二分查找用法

    C语言详细讲解二分查找用法

    二分查找法,又叫做折半查找法,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列
    2022-04-04
  • C++临时性对象的生命周期详细解析

    C++临时性对象的生命周期详细解析

    临时性对象的被摧毁,应该是对完整表达式(full-expression)求值过程中的最后一个步骤。该完整表达式造成临时对象的产生
    2013-09-09
  • C++非继承时函数成员访问属性和类继承过程中的访问控制

    C++非继承时函数成员访问属性和类继承过程中的访问控制

    这篇文章主要介绍了C++非继承时函数成员访问属性和类继承过程中的访问控制,非继承时,protected成员和private成员没有任何区别,都是类内部可以直接访问它们、类外部的类对象不可访问它们、类内部的类对象可以访问它们,更多详细内容请参考下面相关资料
    2022-03-03
  • C中实现矩阵乘法的一种高效的方法

    C中实现矩阵乘法的一种高效的方法

    本篇文章介绍了,在C中实现矩阵乘法的一种高效的方法。需要的朋友参考下
    2013-05-05
  • C语言模拟实现动态通讯录

    C语言模拟实现动态通讯录

    本文主要介绍了C语言模拟实现动态通讯录,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C语言中的内存管理之掌握动态分配的技巧(最新推荐)

    C语言中的内存管理之掌握动态分配的技巧(最新推荐)

    在C语言编程中,内存管理是一项至关重要的技能,它直接关系到程序的性能和稳定性,特别是在处理大型数据集或需要灵活内存布局的场景下,本文将深入探讨C语言中的动态内存分配技巧,帮助开发者更好地掌握这一核心技能
    2025-03-03

最新评论