Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

买卖股票的最佳时机 #268

Closed
ZZK520 opened this issue Nov 4, 2022 · 5 comments
Closed

买卖股票的最佳时机 #268

ZZK520 opened this issue Nov 4, 2022 · 5 comments

Comments

@ZZK520
Copy link
Contributor

ZZK520 commented Nov 4, 2022

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

低买高卖,假设在最低点当天买入,那么此后的每一天卖出都会有一个利润,取其中最大值。

     var maxProfit = function (prices) {
        if(!prices.length) return 0;

        let maxProfit=0;
        let minBuyPrice=prices[0];
        for (const price of prices) {
            /**设置最低买入价格,每日价格在浮动,但是最低点可能两三天才更新。
             * 对于同一个最低点,后面的卖出价格越高,利润越高
             * */ 
            minBuyPrice=Math.min(price,minBuyPrice);
            // 之前最大利润与当前卖出利润取最大值
            maxProfit=Math.max(maxProfit,price-minBuyPrice);
        }
        return maxProfit;
    };
    // const arr = [4,6,2,3];
    const arr = [7, 1, 5, 3, 6, 4];
    const res=maxProfit(arr);
    console.log(res);
@Sunny-117
Copy link
Owner

去pr哇

@Nasuke
Copy link
Contributor

Nasuke commented Nov 5, 2022

在算法这栏开个DP专题?

@ZZK520
Copy link
Contributor Author

ZZK520 commented Nov 5, 2022

开个DP专题?
这个得看册子这一部分的整体架构,取决于用到的数据结构划分还是用算法划分(比如后期是否会加入些栈、队列的数据结构)?
我是看到既有的分栏标题(矩阵相关、链表、二叉树)用的都是数据结构,所以这里直接用了数组作为标题。

@Sunny-117
Copy link
Owner

股票这个更适合双胞胎专题hh,股票有6-8个题来着,这个就不建议按照解题思路来整理了

@ZZK520
Copy link
Contributor Author

ZZK520 commented Nov 8, 2022

我先关了。

@ZZK520 ZZK520 closed this as completed Nov 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants