刚开始做leetcode上的题,可以输出正确结果,但总是超时,怎么解决?

刚开始做leetcode上的题,可以输出正确结果,但总是超时,怎么解决?https://www.zhihu.com/question/34912389

很多时候,Leetcode上的题都有一个简单直观的解题思路,比如这道题(121. Best Time to Buy and Sell Stock,买卖股票的最佳时机)
题目是:给出一个数组表示每日股价,要求找出买入和卖出最好的时机,使得利润最大,输出最大利润。必须先低价买,再高价卖,找最大收益。
比如:Input: [7, 1, 5, 3, 6, 4]
Output: 5
最大利润为在Input[1]=1时买入,在Input[4]=6时卖出。

常见想法是:先选择所有数中最大和最小的,然后判断是否可行,如果不可行就尝试次大和次小的数字,算法时间复杂度为O(N^2)

如果学过算法导论,利用动态规划,每次读一个数据,刷新最低值和最大利润。时间复杂度是O(N),空间复杂度是O(0)

写代码本身是很容易的事情。Leetcode上更多的是挑战优化的极限。我的Leetcode是https://leetcode.com/xiaoxiaoyao/,欢迎一起学习

你可能感兴趣的:(刚开始做leetcode上的题,可以输出正确结果,但总是超时,怎么解决?)