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

大学刚毕业,最近比较闲,对编程又比较感兴趣,就决定开刷leetcode。做了两三道题,在自己的电脑上运行都可以得出正确结果,但提交后总是提示 超时。 …
关注者
60
被浏览
60,789

8 个回答

很多时候,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(1)

写代码本身是很容易的事情。Leetcode上更多的是挑战优化的极限。我的Leetcode是xiaoxiaoyao ,我的GITHUB是xiaoxiaoyao (lake.lai)欢迎一起学习

正经的去学一下算法和数据结构

然后多练...第一次遇到题目没见过自己多想,实在没想通看讨论区也是一种提高,但是一定要吃透

其实可以顺便看看cracking the code interview