进击的喵哥
进击的喵哥
全部文章
分类
博客搭建(3)
图解算法大全(1)
图解高频算法(19)
开源哪些事(1)
题解(1)
归档
标签
去牛客网
登录
/
注册
龙哥手记欢迎你关注
全部文章
(共9篇)
题解 |【清晰图解】 #二叉树中和为某一值的路径(一)#用“爬山”彻底秒杀
默认你已经理解题意了哈 1 思路如下 首先要注意题目说的条件,在题目描述里面出现了 nums[-1] = nums[n] = -∞,代表什么?代表着只要数组中存在一个元素比相邻元素大,那么沿着它就一定能找到一个峰值 根据上述结论,我们就可以使用二分查找来找到峰值 查找的时侯,左指针 l,右指针 r...
Java
Python3
C++
字符串
动态规划
哈希表
二分查找
分治
回溯
并查集
2022-05-02
1
414
题解 | 【清晰图解】#三数之和#排序后步步逼近双指针
默认你已经理解题意了哈 双指针来解 双指针法使用之前: 先把给定 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
题解 |【清晰图解】 #删除有序链表中重复的元素-II#快进来!快进来!!
题意很简单 在一个有序链表中,如果说一个节点的值出现不止一次,那么把所有等于此值的节点全部删掉。 传统手艺,延年益寿😜 别看图拉,看黑板! 因为是有序链表,那如果一个节点的值出现不止一次,那么这两个值肯定是相邻的哦。 三种解法来做 下面用两种方法 :递归,迭代,其中迭代又分为两种方...
C++
Java
Python3
二叉树
前缀和
二叉搜索树
二分查找
动态规划
字符串
双指针
2022-04-26
1
485
题解 |【动图画解】 #二维数组中的查找# 跟二叉搜索很像 进来看哦
默认你已读懂题意了哈 绅士们多看点,延年益寿哦😜 我的解题思路如下 假如你用暴力法遍历矩阵 matrix ,那么它的时间复杂度是 O(N)。但是暴力法没有用矩阵 “从上到下递增、从左到右递增” 的特点,显然这不是我们想要的最优解法啦。 你看下面图,我们把矩阵逆时针旋转 45°,然后把矩阵转化成...
C++
二叉树
二分查找
动态规划
滑动窗口
深度优先搜索
字典树
二叉搜索树
滚动哈希
博弈
2022-04-26
1
405
题解 |【清晰图解】 #数组中的逆序对#"分而治之"妙啊
已默认你已读懂题意了哈 我的解题思路如下 其实我觉得归并排序是跟逆序对是息息相关的,因为归并本质体现的是一种 “分而治之” 的思想 那问题来了? 怎么分: 不断从数组的中点位置划开(即二分法),然后把整个数组的排序问题转化成一个子数组的排序问题; 怎么治: 划分到子数组它的长度为 1 时...
C++
Java
二分查找
数组
二叉树
队列
数据流
概率与统计
归并排序
双向链表
2022-04-26
1
449
题解 |【清晰图解】 #序列化二叉树#重要是思路
默认你已理解题意 那就开始吧 思路如下 我们知道平时使用的前序、中序、后序、层序遍历,遍历过程中记录二叉树的信息是不完整的,也就是说唯一的输出序列可能对应着多种二叉树可能性。我们知道 序列化 和 反序列化 是 完全可逆。 所以序列化的字符串能够携带 完整的二叉树信息,我就是说的这个意思 1 看...
C++
Java
Python2
二叉树
动态规划
排序树
数组
二叉搜索树
链表
二分查找
2022-04-26
1
401
题解 | #单链表的排序#堆排序最简单而直接
默认你已经理解题意 思路如下 堆排序-简单直接 定义类型为ListNode的最小堆 建堆:链表所有node入堆 依次弹出堆顶node,即是从小到大的顺序 时间复杂度O(nlogn),空间复杂度O(n) 此法和数组的堆排序几乎没有区别,实现起来最简单,不易出错 class Solution { ...
C++
Java
二叉树
动态规划
二分查找
堆(优先队列)
堆
2022-04-23
1
852
题解 | #旋转数组的最小数字#减治思想已秒杀
默认你已经理解题意 思路如下 二分查找来解(减治思想) 题目中给出的数组是一半有序,虽然咱们知道传统二分告诉我们二分只能用在有序数组上面,但事实上,只要是可以减治的问题,仍然可以用二分思想。 说下流程哈 数组中最特殊的位置是左边位置 left 和右边位置 right,然后把它们与中间位置 mid ...
C++
二分查找
分治
贪心
二叉树
哈希表
排序树
广度优先搜索
有序集合
java
2022-04-23
1
367