摘要:并查集基础 一、概念及其介绍 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。 二、适用说明 并查集用在一些有 N 个元素的集合应用问题
阅读全文
lotus贵有恒何必三更眠五更起 最无益只怕一日曝十日寒 |
|
05 2023 档案
摘要:并查集基础 一、概念及其介绍 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 并查集的思想是用一个数组表示了整片森林(parent),树的根节点唯一标识了一个集合,我们只要找到了某个元素的的树根,就能确定它在哪个集合里。 二、适用说明 并查集用在一些有 N 个元素的集合应用问题
阅读全文
摘要:并查集是一种用于处理不相交集合的合并和查询问题的数据结构。它可以把一些元素划分为若干个不相交的集合,并支持两种操作: 合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。 并查集的思想是用一个数组表示了整片森林,树的根节点唯一标识了一个集合,我们
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/number-of-islands/submissions/ 考查点 这道题的考察点是: 如何使用并查集这种数据结构来解决一些关于集合的问题,例如判断两个元素是否属于同一个集合,或者统计有多少个不相交的集合。 如何实现并查集
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/evaluate-division/ 考查点 2. 解法 思路 代码逻辑 具体实现 3. 总结
阅读全文
摘要:1. 题目 读题 考查点 2. 解法 思路 思路是这样的: 首先,我把网格看作一个无向图,每个1是一个节点,每个相邻的1之间有一条边。 然后,我用一个变量count来记录岛屿的数量,初始值为0。 接着,我遍历网格中的每个位置,如果当前位置是1,就说明找到了一个新的岛屿,然后我把count加一,并且用
阅读全文
摘要:1. 题目 读题 考查点 2. 解法 思路 代码逻辑 具体实现 3. 总结
阅读全文
摘要:1. 题目 读题 考查点 2. 解法 两种解法 使用hashSet 使用并查集 解法一:使用hashSet 思路 这个解法的核心思想是 找出数组中的所有连续序列的起点, 然后从每个起点开始向后延伸,计算出每个序列的长度,并更新最长长度。 为了找出所有的起点,我们需要判断一个元素是否有前驱,即它的前一
阅读全文
摘要:1. 题目 读题 考查点 2. 解法 思路 动态规划是一种将复杂问题分解为子问题的方法,通过记录子问题的解,避免重复计算,从而提高效率。动态规划的关键是找到状态和状态转移方程。 在这道题中,我们可以定义状态为dp[i],表示第i个位置能接住的雨水量。状态转移方程为: dp[i] = min(maxL
阅读全文
摘要: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/best-time-to-buy-and-sell-stock-with-cooldown/submissions/429217002/ 考查点 2. 解法 思路 思路是这样的: 首先,我们需要定义三个状态,分别表示第 i
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/coin-change/description/ 考查点 这道题的考查点是动态规划的思想和方法,以及如何定义状态和状态转移方程。动态规划是一种将复杂问题分解为子问题,并存储子问题的解的方法。它可以用来解决一些具有最优子结构和
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/house-robber-iii/description/ 好的,我可以给你一个图形化的示例。假设我们有这样一个二叉树: 3 / \ 4 5 / \ \ 1 3 1 我们可以用一个表格来表示每个节点的f0和f1的值: 节
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ 考查点 2. 解法 思路 这道题的思路是使用动态规划来求解。动态规划是一种将复杂问题分解为子问题的方法,通过记录子问题的解,避
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/house-robber/ 考查点 这道题的考查点是动态规划的基本思想和应用, 即如何将一个复杂的问题分解成更小的子问题, 如何找到问题的状态和状态转移方程, 如何确定问题的边界条件和初始值, 以及如何用代码来实现动态规划的
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/partition-equal-subset-sum/description/ 考查点 2. 解法 思路 Leetcode 416 的问题。这道题是一个 0-1 背包问题,要求判断一个数组是否可以分成两个和相等的子集。一个可
阅读全文
摘要:动态规划入门指南 什么是动态规划? 动态规划(Dynamic Programming,简称DP)是一种解决复杂问题的方法,它通过把原问题分解为相对简单的子问题,然后利用子问题的最优解来推导出原问题的最优解。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 重叠子问题是指在求解原问题时,需要反复
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/longest-palindromic-substring/description/ 考查点 这道题的考查点是动态规划的基本思想和技巧,以及字符串的操作和判断。 2. 解法 思路 动态规划的思路是,用一个二维数组 dp[i]
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/unique-paths/ 考查点 这道题的考查点主要是**动态规划**的思想,也就是把一个复杂的问题分解成多个子问题,用一个数组或矩阵来存储子问题的解,然后通过状态转移方程来求解最终的问题。¹²⁴ 动态规划的难点在于找到合
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/minimum-path-sum/ 考查点 这道题的考查点主要是动态规划的思想和技巧。动态规划是一种解决复杂问题的方法,它把一个问题分解成若干个子问题,然后从最简单的子问题开始,逐步求解,最终得到原问题的解。动态规划通常需要
阅读全文
摘要:1. 题目 读题 https://leetcode.cn/problems/decode-ways/ LeetCode 91题是一个动态规划的问题,要求计算给定一个只包含数字的非空字符串的解码方法的总数,其中每个数字可以对应一个字母,例如1对应A,2对应B,…,26对应Z。 考查点 这道题考查了动态
阅读全文
|