您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

买卖股票的最佳时机(图文)

第十三双眼睛2023-11-29【数据结构与算法】人已围观

简介买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

思路:最容易想到的办法,就是利用选择排序法,从第一个开始遍历,依次和后面的每一个元素比较,比较完后,总能找到最大的收益,但是选择排序法比较耗时。因此不考虑。

第二种思路:定义两个变量,一个表示数组中的最小值,另一个变量表示最大收入,遍历数组,遍历的过程中,如果今天的值是最小值,肯定不适合卖出,如果不是最小值,就计算收入,根历史最大收入做比较,循环完毕以后,就得到了最大收入。代码如下:
public static int method1(int[] nums) {
    if (nums == null || nums.length == 0) {
        return 0;
    }
    int minPrice = Integer.MAX_VALUE;
    int maxValue = 0;
    for (int i = 0; i<nums.length; i++) {
        if (nums[i] < minPrice) {
            minPrice = nums[i];
        } else if (nums[i] - minPrice > maxValue) {
            maxValue = nums[i] - minPrice;
        }
    }
    return maxValue;
}

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们