leetcode刷题常见数学算法总结
文章平均质量分 74
leetcode题基本涵括了现在计算机界最为的数学算法思想,在刷题的过程中,希望能记录下这些思想,提升算法素养。
---刷leetcode是次要,锻炼算法思维才是关键。
Jiede1
专注与数据挖掘和人工智能
Github: https://github.com/Jiede1
展开
-
分享两道经典的二叉树LC题目---重建二叉树/二叉树的序列化反序列化
1.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回根结点。解题思路在于:前序遍历中,第一个被遍历的节点永远为根节点,然后再遍历左子树,最后才是右子树。中序遍历中,根节点会被放在中间遍历,根节点左边为左子树,右边为右子树。如上,从这张图,我们能够获知,给点两个数组(前序,中序),根节点的存在原创 2021-02-11 16:49:47 · 731 阅读 · 0 评论 -
最近公共祖先(二叉搜索树,普通二叉树)
236. 二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:原创 2020-11-17 09:54:09 · 316 阅读 · 0 评论 -
113. 路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [5,8,4,5]]原创 2020-11-05 14:43:21 · 145 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:tru原创 2020-10-28 15:29:45 · 161 阅读 · 0 评论 -
LeetCode399.除法求值
原题链接:https://leetcode-cn.com/problems/evaluate-division/题目描述:知识点:图的深度优先遍历思路:图的深度优先遍历本题是一题经典的图论算法,这里的除法运算可以看成是连接两个节点的一条有向边,那么计算结果存在的条件是什么呢?(1)两个字符串在equations中都出现过。(2)这两个字符串在equations中存在联系,即同属于一个连通分量。首先,利用一个Map将字符串与数字编号一一对应起来。对于图的深度优先遍历,我们选择用一个邻接矩转载 2020-09-06 20:55:28 · 216 阅读 · 0 评论 -
Leetcode-207.课程表
很经典的图论题目,如果想学习图论的遍历的话,以这道题作为入门,是非常合适的。图的DFS图的DFS和树的DFS其实没什么不同,只不过图是有环的,有可能DFS会走着走着,走回自身。图的BFS同理,图的BFS和树的BFS也是一样。一般情况下,考虑图的DFS,BFS时,要多留意图节点的入度,出度。题目如下:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个.原创 2020-08-09 14:23:06 · 204 阅读 · 0 评论 -
Leetcode 79. 单词搜索
Leetcode 79. 单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 wo原创 2020-07-18 14:58:21 · 207 阅读 · 0 评论 -
Single Number II leetcode java
在做下面这道题的时候,很可耻的使用了HashMap来AC了,但查到网上思路完全不是这样,一看题解,原来这道题还是有学问的,特记录下。题目:Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should h...原创 2019-01-24 23:15:11 · 446 阅读 · 0 评论 -
LeetCode25 以k为一组,反转链表
[LeetCode25] Reverse Nodes in k-Group 每k个一组翻转链表ven a linked list, reverse the nodes of a linked list k at a time and return its modified list.k is a positive integer and is less than or equal to th...转载 2018-12-06 11:18:01 · 285 阅读 · 0 评论 -
LeetCode(17) - Letter Combinations of a Phone Number
经典的backtracking(回溯算法)的题目。当一个题目,存在各种满足条件的组合,并且需要把它们全部列出来时,就可以考虑backtracking了。当然,backtracking在一定程度上属于穷举,所以当数据特别大的时候,不合适。而对于那些题目,可能就需要通过动态规划来完成。递归解法这道题的思路很简单,假设输入的是"23",2对应的是"abc",3对应的是"edf",那么我们在递归时,先...转载 2018-11-25 12:47:50 · 232 阅读 · 0 评论 -
2Sum Ksum解法
2Sum题目Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use th...转载 2018-11-24 00:49:33 · 662 阅读 · 0 评论