
贪心
圆滚滚的柴柴
这个作者很懒,什么都没留下…
展开
-
牛客 剑指offer:最长递增子序列
题目:最长递增子序列 思路: 首先,动态规划可以解决。定义dp[i]为以i结尾的数组的最长递增子序列的长度,对于i之前的位置j,如果数组i处的值大于j,那么dp[i]可以在dp[j]的基础上加1。我们遍历i之前的位置,取最大值。 得到dp数组后,其中的最大值就是最长递增子序列的长度,如何得到序列呢?反向遍历dp数组即可。 例如: arr:[2, 1, 5, 3, 6, 4, 8, 9, 7] dp:[1, 1, 2, 2, 3, 3, 4, 5, 4] 我们倒叙遍历dp,挨个找。 找第5个位置:9 找第4个原创 2021-03-22 21:08:39 · 280 阅读 · 0 评论 -
leetcode Java:55. 跳跃游戏
题目:55. 跳跃游戏 思路:贪心。 维护一个当前可以到达的最远位置,遍历的过程中更新它。如果最远位置大于数组长度,那么可以到达;如果当前位置大于最远位置,说明不可达到,因为当前位置已经不可到达了。 代码: class Solution { public boolean canJump(int[] nums) { int n = nums.length; int maxPos = 0; for (int i = 0; i < n; i ++) {原创 2021-03-16 16:29:56 · 117 阅读 · 0 评论 -
牛客 剑指offer:买卖股票最佳时机
题目:买卖股票最佳时机 思路:贪心。 维护一个最小价格,循环的过程不断更新该值,这样可以得到当前位置卖的最大价格。 代码: import java.util.*; public class Solution { /** * * @param prices int整型一维数组 * @return int整型 */ public int maxProfit (int[] prices) { // write code here原创 2021-03-11 16:07:53 · 94 阅读 · 0 评论 -
leetcode Java二刷:45. 跳跃游戏 II
题目:45. 跳跃游戏 II 思路:贪心。 挑选下一个位置的条件是 : 总是选择可以跳的更远的位置。 例子: 位置2,可以跳5步,位置3可以跳2步,那我们优先选择位置2,因为它可以跳的更远。 代码: class Solution { public int jump(int[] nums) { if (nums.length == 1) { return 0; } int cur = 0; int time = 0原创 2021-03-02 16:44:53 · 81 阅读 · 0 评论