算法
文章平均质量分 61
你的瓦刀
这个作者很懒,什么都没留下…
展开
-
记一次三维动态规划(股票买卖最佳时机)的优化,耗时从击败(20%,5%)到击败(99%,65%)
力扣的股票买卖问题如下。123题k=2,188题k不定。 给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。 采用动态规划。 状态转移图: 这个问题的「状态」有三个,第一个是天数,第二个是允许交易的最大次数,第三个是当前的持有状态。所以这是个三维DP问题。 状态转移方程: dp[i][k][j]:i 为天数,k为最多交易天数,j为当前是否持有。 dp[i][k][0] =原创 2021-07-12 23:06:27 · 373 阅读 · 3 评论 -
双指针题集
11. 盛最多水的容器 ①暴力法 class Solution { public int maxArea(int[] height) { int max = Integer.MIN_VALUE; for(int i = 1; i < height.length; ++i){ // 以i为末边界 for(int j = 0; j < i; ++j){ max = Math.max(max, Math.m原创 2021-06-01 23:29:30 · 160 阅读 · 0 评论 -
动态规划题集(背包问题等)
有了四步解题法模板,再也不害怕动态规划! 例题 120. 三角形最小路径和 class Solution { public int minimumTotal(List<List<Integer>> triangle) { for(int i = triangle.size()-1; i > 0 ; i--){ for(int j = 0; j < i ; j++){ triangle.get(原创 2021-05-23 21:12:04 · 465 阅读 · 0 评论