上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 题目描述 注意,需要求的是岛屿的数量,而不是岛屿的总面积, 这道题很考验对dfs思路的理解,而不是简单地套用模版。 可以用dfs和bfs两种方法做。 深度优先搜索版本 首先看代码: class Solution { private: int dir[4][2] = {0, 1, 1, 0, -1, 阅读全文
posted @ 2024-03-20 21:10 SaTsuki26681534 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 思路分析 先前已经做过一道深度优先搜索了,可以看出,DFS比较适合求两点之间的所有路径这样的问题,因为其路径都是逐条求出的,而BFS则可能一下子求出多条路径,适合用来求最短路径。 关于BFS的过程前面已经学习过很多次了,遍历到一个节点时要先保存其所有邻接节点再继续向下遍历,一般是使用一个队列来完成。 阅读全文
posted @ 2024-03-20 16:56 SaTsuki26681534 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 首先了解一下深度优先搜索和回溯法的区别 可以看出这两种方法在思路上可以说没什么区别,但是由于在具体实现方面的区别,有着不同的应用场景。 我的理解是,回溯法很多时候是应用在抽象的枚举过程中的,而dfs算法很多时候是用在图或者树这种实际的几何图形中的。 比较一下回溯的模版和dfs的模版: dfs思路分析 阅读全文
posted @ 2024-03-20 11:58 SaTsuki26681534 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 各种意义上都很难 的一道回溯题,首先按照回溯模版写就不是很简单,因为path需要在开头的地方加上JFK,另外,判断字典序优先度如果没有写过的话也很难一下子写出来。就算把这些写出来后,在规模比较大的判例上还是会超时或者超内存。 另外,超时或者超内存不一定是代码性能的问题,也可能是几张票 阅读全文
posted @ 2024-03-19 22:46 SaTsuki26681534 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 其实分析起来并不陌生,找到这个集合的子集,并且是这个子集在0和1的个数不超限的前提下长度最大(含的字符串个数最多),但是新奇之处就在于这里有两个指标:0的个数和1的个数。 但是这题并不是多重背包,因为多重背包的情景是背包中有多重不同的物体,而这里背包里的物体只有一种,即01字符串,只 阅读全文
posted @ 2024-03-19 15:59 SaTsuki26681534 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 首先容易想出,dp数组的含义应该是两个字符串的最长公共子序列长度。 当两个字符串中的任意一个长度为0时,对应的LCS为0 由于同时受到两个数组的影响,所以dp数组应该设置为二维数组, 并且有:dp[i][j]代表的是s1的0-i的子序列与s2的0-j的子序列的LCS 然后分析递推公式 阅读全文
posted @ 2024-03-15 22:30 SaTsuki26681534 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 01背包的题做起来最难的是把原问题转化成01背包题,通常需要写出题目中所有的数学关系,对公式进行化简后得到01背包的类型。 在这种情景下还需要重新定义dp数组的含义 于是连带的。dp数组的递推公式也要重新想 大胆的按照五步骤结合题目分析的话其实并不是难到无迹可寻,而如果太死板的套用模 阅读全文
posted @ 2024-03-15 15:52 SaTsuki26681534 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 出题人肯定是要尽量避免太直接的模版套用 像这题一样,挖了很多坑。 首先是题目很难让人第一时间联想到01背包 这道题换一种描述方法就是找到一个子集,使子集的元素值总和刚好等于原集合之和的一半。 也就是说是一个背包容量为sum/2的01背包问题 另外,化解为这样之后你又会发现和写的和前面 阅读全文
posted @ 2024-03-14 20:39 SaTsuki26681534 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目描述 思路 这道题并不难,常规的动态规划思路,递推公式也并不难想。 但是贴这题的目的是比较一下题解和我的代码在具体实现上的区别; 代码随想录: class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& o 阅读全文
posted @ 2024-03-12 17:13 SaTsuki26681534 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 问题描述 思路 这个递推公式并不难,n阶台阶的走法数目即为n-1阶的走法数目(再走一节就到了)加上n-2阶的走法数目。 当看到部分测试样例WA,而且都是靠后的测试样例而不是随机分散,那么有很大几率是数据类型存储有问题,存不了太大的数,而不是递推公式的问题。 想这题一样,当输入的N为500时,结果为: 阅读全文
posted @ 2024-03-11 23:14 SaTsuki26681534 阅读(2) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页