摘要:1. 题目 读题 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/submissions/429217002/ 考查点 2. 解法 思路 思路是这样的: 首先,我们需要定义三个状态,分别表示第 i
阅读全文
随笔分类 - 算法
摘要:1. 题目 读题 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/submissions/429217002/ 考查点 2. 解法 思路 思路是这样的: 首先,我们需要定义三个状态,分别表示第 i
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/house-robber-iii/description/ 好的,我可以给你一个图形化的示例。假设我们有这样一个二叉树: 3 / \ 4 5 / \ \ 1 3 1 我们可以用一个表格来表示每个节点的f0和f1的值: 节
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/house-robber/ 考查点 这道题的考查点是动态规划的基本思想和应用, 即如何将一个复杂的问题分解成更小的子问题, 如何找到问题的状态和状态转移方程, 如何确定问题的边界条件和初始值, 以及如何用代码来实现动态规划的
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/maximum-product-subarray/ 考查点 2. 解法 思路 思路是这样的:我们要找到一个子数组,使得它的乘积最大。我们可以用动态规划的方法,定义一个状态dp[i],表示以第i个元素结尾的子数组的最大乘积。那
阅读全文
摘要:1. 题目 读题 考查点 这道题的考查点是: 如何定义合适的状态,即dp[i]的含义。 如何找到状态转移方程,即dp[i]和dp[j]的关系。 如何初始化和更新状态,即dp[i]的初始值和最大值。 如何从状态数组中得到最终结果,即res的值。 2. 解法 思路 讲一下思路吧。 这个问题的核心是找到数
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/coin-change/description/ 考查点 这道题的考查点是动态规划的思想和方法,以及如何定义状态和状态转移方程。动态规划是一种将复杂问题分解为子问题,并存储子问题的解的方法。它可以用来解决一些具有最优子结构和
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ 考查点 2. 解法 思路 这道题的思路是使用动态规划来求解。动态规划是一种将复杂问题分解为子问题的方法,通过记录子问题的解,避
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/partition-equal-subset-sum/description/ 考查点 2. 解法 思路 Leetcode 416 的问题。这道题是一个 0-1 背包问题,要求判断一个数组是否可以分成两个和相等的子集。一个可
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/longest-palindromic-substring/description/ 考查点 这道题的考查点是动态规划的基本思想和技巧,以及字符串的操作和判断。 2. 解法 思路 动态规划的思路是,用一个二维数组 dp[i]
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/minimum-path-sum/ 考查点 这道题的考查点主要是动态规划的思想和技巧。动态规划是一种解决复杂问题的方法,它把一个问题分解成若干个子问题,然后从最简单的子问题开始,逐步求解,最终得到原问题的解。动态规划通常需要
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/unique-paths/ 考查点 这道题的考查点主要是**动态规划**的思想,也就是把一个复杂的问题分解成多个子问题,用一个数组或矩阵来存储子问题的解,然后通过状态转移方程来求解最终的问题。¹²⁴ 动态规划的难点在于找到合
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/decode-ways/ LeetCode 91题是一个动态规划的问题,要求计算给定一个只包含数字的非空字符串的解码方法的总数,其中每个数字可以对应一个字母,例如1对应A,2对应B,…,26对应Z。 考查点 这道题考查了动态
阅读全文
摘要:动态规划入门指南 什么是动态规划? 动态规划(Dynamic Programming,简称DP)是一种解决复杂问题的方法,它通过把原问题分解为相对简单的子问题,然后利用子问题的最优解来推导出原问题的最优解。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 重叠子问题是指在求解原问题时,需要反复
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/queue-reconstruction-by-height/ 考查点 这道题的考查点是贪心算法的应用,以及如何根据题目的要求设计合适的排序规则和插入策略。 贪心算法是一种常见的解决优化问题的方法, 它需要我们证明每次选择最
阅读全文
摘要:1. 题目 考察点 这道题的考察点是回溯法(backtracking)的应用。回溯法是一种常用的算法思想,它可以解决很多和搜索、组合、排列、子集、路径等相关的问题。回溯法的核心是递归和剪枝,递归是为了遍历所有可能的选择,剪枝是为了减少无效的选择,提高效率。回溯法需要掌握以下几个要点: 如何定义状态空
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/jump-game/ 考查点 这道题主要考查的是贪心算法的应用, 即在每一步选择最优的局部解,从而达到全局最优的目的。 贪心算法通常用于解决一些最优化问题,如最小生成树、单源最短路径、任务调度等。 2. 解法 思路 一个可能
阅读全文
摘要:贪心算法的介绍和例子 什么是贪心算法? 贪心算法是一种寻找最优解的算法,它的基本思想是:在每一步选择中,都采取当前状态下最好或最优的选择,从而希望导致结果是最好或最优的算法。 贪心算法有以下特点: 只考虑当前状态,不考虑全局最优 不能回退,即一旦做出选择就不能改变 易于实现,运行效率高 不一定能得到
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/maximum-subarray/ 考查点 这道题的考查点是: 贪心算法:贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。贪心算法在有最优子结构的问题中尤其有效
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/task-scheduler/ 考查点 这道题的考查点是: - 如何统计和排序任务的频率。- 如何分析不同情况下的最少时间。- 如何利用数学公式来简化计算。 2. 解法 思路 解法的思路是: 首先统计每种任务的出现频率,然后
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/combination-sum/ 你好,这是Bing。根据搜索结果,leetcode 39是一个编程题目,要求你找出一个整数数组中所有可以使数字和为目标数的不同组合¹²。 例如,如果数组是[2,3,6,7],目标数是7, 那
阅读全文
|