随笔分类 -  【leetcode】

摘要:1、题目描述 、 2、分析 其实就是把含有相同字符并且出现次数相同的分为一个组,我们可以使用map来统计,遍历当前数组,对每一个字符串进行排序,之后放入map中,最后再从map中取出结果。map的两个参数一个是排序后映射的字符串,第二个参数则是这个映射的字符串在原字符串数组中的各个表现,也就是第二个 阅读全文
posted @ 2019-09-03 20:05 吾之求索 阅读(200) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题其实是一道滑动窗口的应用的题,也就是维护一个大小为K的窗口,计算其中的值,然后再对值进行其他题目需要的计算。滑动窗口的技巧在一些求子串之类的题中很常见。 3、代码 阅读全文
posted @ 2019-09-02 20:25 吾之求索 阅读(150) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 很明显首先需要求n以内的质数,求质数有这样一个简单的方法,埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。这样从2开始,定义一个大小为n的 阅读全文
posted @ 2019-09-01 19:54 吾之求索 阅读(159) 评论(0) 推荐(0)
摘要:1、题目描述 题目链接:https://www.luogu.org/problem/P1219。 2、分析 n后问题有四个限制条件,首先是行,这一行不能再有其他皇后,由于我们是使用行来做递归,在放置第i个皇后时,必然行的条件是满足的,那么就需要考虑列和对角线的条件,首先在递归程序里需要遍历所有的列, 阅读全文
posted @ 2019-08-03 23:20 吾之求索 阅读(158) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题求岛屿数量,岛屿是周围都是水,二维数组中1为岛屿,0为水,并且连着的岛屿算一个。求给定的数组中岛屿的数量。我们可以遍历,在找到一个岛屿的时候,计数加1,把它设为0,对其进行深搜,找其周围是否还存在岛屿,如果存在也将其设置为0,然后再找其余的1进行遍历。 3、代码 4、相 阅读全文
posted @ 2019-07-28 21:39 吾之求索 阅读(249) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题其实很简单,就是BFS,层序遍历,然后在这一层中找到最大的值保存下来,然后存入结果。 3、代码 4、相关知识点 树的层序遍历,BFS。 阅读全文
posted @ 2019-07-25 22:33 吾之求索 阅读(109) 评论(0) 推荐(0)
摘要:1、题目分析 题目链接:https://www.luogu.org/problemnew/show/P1030。其实这道题就是一道根据树的中序和后序遍历来求先序遍历。在leetcode之前做过,可以参考这里。代码稍微改改,加上输入输出即可。 2、代码 阅读全文
posted @ 2019-07-24 21:50 吾之求索 阅读(167) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题和124题有点像,只不过124更难一点,这道题只需要将所有到叶子节点的值计算出来再计算和。需要注意的是,必须是叶子节点,也就是说递归结束的条件是当前节点的左子树右子树都为空时才结束。之后递归分别计算左子树和右子树即可。 3、代码 4、相关知识点 树的DFS搜索其实结束条 阅读全文
posted @ 2019-07-24 21:38 吾之求索 阅读(180) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题求最大的路径和,从上面的两个例子能看出来这道题需要考虑的点,首先它是需要考虑左右子树的,两个并不分开,其次其实中间的处理部分是一个动态规划的应用,首先定义一个全局变量,取最小值,这个值用来记录最终结果。然后DFS搜索两个子树,并且比较子树的和与0的大小,取其大的,记录两 阅读全文
posted @ 2019-07-24 20:50 吾之求索 阅读(111) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题和上一道题很像,都是BFS的应用。 3、代码 4、相关知识点 二叉树的层序遍历,BFS的应用。 阅读全文
posted @ 2019-07-23 19:58 吾之求索 阅读(82) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题是放在DFS里面的,但是很明显其实用BFS来做会更容易,和树的层序遍历的顺序一样,对每一个节点设置其next指针的位置即可。 3、代码 4、相关知识点 树的层序遍历,以及BFS相关。 阅读全文
posted @ 2019-07-21 21:00 吾之求索 阅读(107) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 首先分析,应该从最底下的节点来开始,所以就是递归应该是从右子树开始,之后再递归左子树。接下来就是需要处理的递归语句,需要处理的就是指针的指向,我们需要用一个变量来保存每次传进来的节点,先将其设为NULL,之后再更改其他指针。 3、代码 4、相关知识点 DFS需要考虑几个问题, 阅读全文
posted @ 2019-07-14 17:18 吾之求索 阅读(90) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 和上一道题很像,只不过需要的是在过程中保存路径,这样就需要一个全局变量来保存最终的结果。一般在涉及到DFS时需要保存结果什么需要全局变量来保存,这样才会保证其在递归的过程中保持原来的值。 3、代码 4、相关知识点 涉及到递归保存值的问题,需要使用全局变量来保存。 阅读全文
posted @ 2019-07-14 16:22 吾之求索 阅读(97) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 DFS边界条件是如果传进来的节点为空,说明前面没找到则返回false,如果左右子节点都为空并且传进来的sum-val等于0,则返回true,递归处理左右子节点就好。 3、代码 4、相关知识点 DFS相关的边界条件其实是递归最难的地方,所以就需要考虑很多。 阅读全文
posted @ 2019-07-13 19:48 吾之求索 阅读(133) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 求树的最小深度,递归求出左右子树,返回其中小的那个。需要注意的是这里的叶子节点指的是两个子节点都为空的节点,如果只是其中一个子节点为空那么需要返回的是另一个的高。 3、代码 4、相关知识点 树的高度的相关求解。 阅读全文
posted @ 2019-07-13 11:24 吾之求索 阅读(99) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 判断平衡二叉树只需要计算其左右子树的高然后相减只要其值小于1即可。只有左右子树都满足时才返回真。 3、代码 4、相关知识点 求树的高度的方法。 阅读全文
posted @ 2019-07-09 21:14 吾之求索 阅读(107) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 和上一道题一样,思路都是找到根节点然后分两半进行递归。 3、代码 4、相关知识点 树的递归技巧。 阅读全文
posted @ 2019-07-09 20:46 吾之求索 阅读(79) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 从前序和中序中构造二叉树,构造二叉树最关键的是找到根节点,这个题和用后序和中序构造二叉树的思路上是一样的,首先找到根节点,然后将数组再分为两部分,递归的构造左右子树。 3、代码 4、相关知识点 构造树的递归。 阅读全文
posted @ 2019-07-09 20:36 吾之求索 阅读(88) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 这道题算比较简单,判断两个树是否相同,只需要递归左右子树即可。在递归开始进行边界的一些判断。 3、代码 4、相关知识点 树的常用的递归的方法。 阅读全文
posted @ 2019-07-09 20:28 吾之求索 阅读(129) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 题的意思是将被包围起来的O变为X。边界上O不算被包围。 本来以为只要把不是边界的O变为X就好,很明显不会那么简单,如果边界上的O相连的非边界的也是O那么这个O也不能变成X。这道题找被包围起来的O比较难找,那就找所有没有被包围起来的O,然后再找所有和边界上的O相邻的非边界O,先 阅读全文
posted @ 2019-07-04 21:13 吾之求索 阅读(104) 评论(0) 推荐(0)