
LeetCode
文章平均质量分 50
度凡心
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 121. Best Time to Buy and Sell Stock
题目大意: 第iii天的股票价格是prices[i]prices[i]prices[i],现在最多做一次交易(买进和售出),问能最多赚多少钱(也可以不交易)。 最先想到的是两层循环,在某天买进,再在某天售出。然后找到所有组合中赚钱最多的。复杂度O(N2)O(N2)O(N^2)。代码如下: int maxProfit = 0; int minPrice = INT_MAX; int lengt...原创 2018-09-17 15:21:47 · 149 阅读 · 0 评论 -
LeetCode 746. Min Cost Climbing Stairs
题目大意: 有一段数组,长度为nnn,可以从第一步出发,也可以从第二部出发。可以一步一步走,也可以两步两步走。每次从一个地方离开时需要交钱。问需要的最小花费是多少。 思路其实很简单,维护每一步的最小花费。走到iii步时,可以从i−1i - 1i−1步来的,也可以是i−2i -2i−2步来的。 从i−1i - 1i−1步来的,要交i−1i - 1i−1步的钱,就需要在i−1i - 1i−1步来的...原创 2018-09-18 17:23:36 · 193 阅读 · 0 评论 -
LeetCode 53. Maximum Subarray
题目大意: 有一数组,找到其中连续的子串,使其的和最大,其中子串至少有一个数字。也就是最大子串和。 解决思路: 维护一个最大值maxnmaxnmaxn和一个和值sumsumsum。sumsumsum计算前几个数字的和。因为这些数字有正数与负数,因此sumsumsum就有可能是正数,0和负数。 如果已经是负数了,就没有必要再加了,即使后面的是正数。因为抛弃掉前面的负数,重新开始加上后面的正数,su...原创 2018-09-27 14:09:08 · 386 阅读 · 1 评论 -
LeetCode 70. Climbing Stairs
题目大意:有一个楼梯,一次可以走一步也可以走两步。问从底部走到顶部有多少种不同的走法。 状态是每个台阶的走法,用一个数组stepsstepssteps维护,最后顶部台阶的走法就是答案。 那么状态转移的方式是:某个台阶iii可以从前面一个台阶i−1i - 1i−1一步上来,也可以从前两个台阶i−2i - 2i−2走两步上来。那么走到台阶iii的走法数量就是前面一个台阶i−1i - 1i−1的数量加上...原创 2018-09-21 22:07:26 · 254 阅读 · 0 评论 -
LeetCode 198. House Robber
题目大意: 去抢一列房子,但是不能抢相邻地房子,现在希望抢的价值最多。也就是说在一串数组中找到一个子串,和最大,但是不能不能取两个连续的数字。 思路: 维护一个数组dpdpdp,记录每个位置上及以前的最大值,即dp[i]dp[i]dp[i]记录第iii个位置及以前地数字地最大和。由于不能取连续的两个数字,因此如果要取第iii个位置地数字,则第i−1i - 1i−1个位置是不能取的;也可以不取第ii...原创 2018-09-28 22:42:49 · 279 阅读 · 0 评论