进击的喵哥
进击的喵哥
全部文章
图解高频算法
博客搭建(3)
图解算法大全(1)
开源哪些事(1)
题解(1)
归档
标签
去牛客网
登录
/
注册
龙哥手记欢迎你关注
全部文章
/ 图解高频算法
(共9篇)
题解 | 【清晰图解】#对称的二叉树#递龟已经秒杀
默认你已经理解题意了哈 递归的难点在于:找到可以递归的点在哪里 为什么很多同学觉得递归一看就会,一写就废。 或者说是自己没有深入思考而无法写出来呢,关键是你对递归理解的不够深。 对这道题: 递归的点怎么找?我从拿到题的第一时间开始想,思路如下: 首先你怎么判断一棵树是不是对称二叉树? 答案...
C++
Java
Python3
动态规划
并查集
递归
双指针
字符串
数组
贪心
2022-05-02
1
468
题解 |【清晰图解】 #数组中出现次数超过一半的数字#摩尔投票
默认你已经理解题意了哈 思路如下 想象一下,假设一个数组是一个投票箱,数组元素是一张已经写了选举人编号的一张选票 题目上说要求我们找出哪个数字,能够超过了数组的一半呢? 是否就可以想象成,哪个人成为了最终选举的胜利者! 那么,我们接下来要做的事情,就是找到票数最多的那个人的编号就可以了 是不是感觉...
C++
Java
Python3
数学
数组
字符串
动态规划
二叉树
双指针
分治
2022-05-02
1
395
题解 | 【清晰图解】#三数之和#排序后步步逼近双指针
默认你已经理解题意了哈 双指针来解 双指针法使用之前: 先把给定 nums 进行排序,复杂度是 O(NlogN) 然后固定 3 个指针中最左(也就是最小数字)的指针 k,双指针 i,j 分指向数组索引 (k,len(nums)) 两端,然后用双指针交替向中间移动,记录每个固定指针 k 的所有满足 ...
C++
Java
Python3
双指针
字符串
动态规划
二叉树
数组
二分查找
2022-04-29
1
438
题解 |【清晰图解】 #链表中环的入口结点#哈希和快慢指针来解
默认你已经理解题意 第一种 用哈希表来解 思路如下 一个非常直观的思路是:我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。借助哈希表可以很方便地实现。 public class Solution {  ...
Java
Python3
二叉树
动态规划
字符串
数组
数据库
二分查找
双指针
2022-04-28
0
473
题解 | 【清晰图解】#合并两个排序的链表#递归和暴力解法
默认你已经理解题意了哈 题目意思 就是有两个链表,每个链表长度都是n,合并这两个链表成一个新链表,它的结点仍然是递增的,就是这个意思哈 暴力如何解 思路我们可以用暴力来完成。当 l1 和 l2 两个都不是空链表的时候,去判断 l1 和 l2 哪一个链表的头节点的值更加的小,将较小值的节点添加到结...
Java
C++
Python3
C++14
Mysql
二叉树
动态规划
数组
字符串
单调栈
2022-04-28
1
651
题解 |【清晰图解】 #数组中的逆序对#"分而治之"妙啊
已默认你已读懂题意了哈 我的解题思路如下 其实我觉得归并排序是跟逆序对是息息相关的,因为归并本质体现的是一种 “分而治之” 的思想 那问题来了? 怎么分: 不断从数组的中点位置划开(即二分法),然后把整个数组的排序问题转化成一个子数组的排序问题; 怎么治: 划分到子数组它的长度为 1 时...
C++
Java
二分查找
数组
二叉树
队列
数据流
概率与统计
归并排序
双向链表
2022-04-26
1
449
题解 |【清晰图解】 #二叉搜索树与双向链表#也不难
默认你已经理解题意 [机智] 解题思路如下 先得搞明白什么是二叉搜索树 ? 是一棵有序的二叉树,所以我有时候也叫它二叉排序树。具备以下性质的二叉树我们称之为二叉搜索树: 1 若它的左子树不是空,那么左子树上的...
C++
Java
Python2
二叉搜索树
动态规划
字符串
数组
广度优先搜索
并查集
双向链表
2022-04-26
1
469
题解 |【清晰图解】 #序列化二叉树#重要是思路
默认你已理解题意 那就开始吧 思路如下 我们知道平时使用的前序、中序、后序、层序遍历,遍历过程中记录二叉树的信息是不完整的,也就是说唯一的输出序列可能对应着多种二叉树可能性。我们知道 序列化 和 反序列化 是 完全可逆。 所以序列化的字符串能够携带 完整的二叉树信息,我就是说的这个意思 1 看...
C++
Java
Python2
二叉树
动态规划
排序树
数组
二叉搜索树
链表
二分查找
2022-04-26
1
401
题解 | #动图来解# 剑指 Offer 07. 重建二叉树(分治算法,清晰图解)
前提知识点 前序遍历性质: 节点按照 [ 根节点 | 左子树 | 右子树 ] 进行排序。 中序遍历性质: 节点按照 [ 左子树 | 根节点 | 右子树 ] 进行 排序。 看题举的例子: 前序遍历划分成 [ 3 | 9 | 20 15 7 ] 中序遍历划分成 [ 9 | 3 | 15 20 7 ] ...
C++
Java
Python2
二叉树
分治
双指针
栈
动态规划
数组
2022-04-20
0
325