自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 力扣每日一题——寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。,如果按照上述的思路,那么我们的时间复杂度为。把nums1和nums2整合为1个数组,然后。看到该题目,我们大部分人第一反应就是,直接。但是不要忽略了时间复杂度要求。,那么我们具体应该如何操作呢?我们其实可以猜测大概率是使用。

2023-11-25 10:37:55 136

原创 算法通关村——滑动窗口高频问题

本节我们继续来讲讲一道经典的滑动窗口问题,就是 leetCode11. 盛最多水的容器

2023-09-05 15:47:08 179

原创 算法通关村——原来滑动窗口如此简单

在数组双指针里,我们经常使用的双指针包括 “对撞型” 和 "快慢型” 两种方式,而滑动窗口思想其实就是快慢型的特例。学过计算机网络的同学都知道 滑动窗口协议(Sliding Window Protocol) ,该协议是TCP实现流量控制等的核心策略之一。事实上在与流量控制、熔断、限流、超时等场景下都会首先从滑动窗口的角度来思考问题,例如nystriⅸ、sentinel等框架都使用了这种思想。

2023-09-03 19:16:34 194

原创 算法通关村——位运算在查找重复元素中的妙用

在 海量数据 中,此时普通的 数组、链表、Hash、树等等结构有无效 了,因为内存空间放不下了。而常规的递归、排序、回溯、贪心和动态规划等思想也无效了,因为执行都会超时,必须另外想办法。这类问题该如何下手呢?这里介绍三种非常典型的思路:

2023-09-02 17:07:59 255

原创 算法通关村——解析堆在找 第K大的元素中 的应用

本节我们来讲讲LeetCode215.在数组中找第K大的元素** 题目,本节我们只讲解如何使用堆来解决本类题目, 主要解决方法有三个,选择法,堆查找法和快速排序法

2023-09-01 21:37:59 134

原创 算法通关村——丑数问题解析

本题目出自 剑指offer49 ,我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number),求按从小到大的顺序的第 n 个丑数。

2023-08-30 14:54:25 205

原创 算法通关村——Pow(x, n)问题解析

pow(x,n) 在我刚开始做这题目的时候,我觉得不就实现个Math的pow(x,n)函数吗,这不是简简单单,直接循环遍历求解 再限定一下范围不就ok了吗?但是没一会就被啪啪打脸,各种超时 和 数据的范围限制直接 把我卡住了。

2023-08-28 11:44:44 128

原创 算法通关村—数字溢出问题处理模板

溢出问题是一个极其重要的问题,只要涉及到输出一个数字,都可能遇到,典型的题目有三个:数字反转,将字符串转成数字和回文数。 不过溢出问题一般不会单独考察,甚至面试官都不会提醒你,但他就像捕捉猎物一样盯着你,看你会不会想到有溢出的问题,例如这道题是一个小伙伴面美团时拍的。所以凡是涉及到输出结果为数字的问题,必须当心!

2023-08-25 16:21:49 103

原创 算法通关村——最长公共前缀问题解析

本节我们来讲一道经典的字符串问题——**最长公共前缀问题**,虽然该题目难度不大,但是对字符串的考察比较综合。

2023-08-23 17:35:11 79

原创 算法通关村——反转字符串里的单词问题解析

本题为LeedCode151题目,该题目经常作为面试题进行考核,其难度不大,但是考核了字符串大部分比较重要的基本操作,所以我们的重点就是从多种角度来分析该问题。

2023-08-22 12:04:24 118

原创 算法通关村——不简单的字符串转换问题

本节我们只讲这一道题,该题涉及了多个重要场景的处理,是一道非常重要的问题,理解了本题,字符串的大部分常见的处理方式就都能理解了,请务必重视。

2023-08-16 23:15:21 82

原创 算法通过村——位运算高频算法题

与位运算和数学有关的题目真不少,而且很多都有一定的技巧,好在这些技巧相对是固定的,我们做好积累就行了。

2023-08-16 10:12:08 36

原创 算法通关村——位运算基础

位运算作为计算机的核心基础,数据的表示和计算几乎都少不了,在JVM以及很多高性能代码李大量使用,甚至很多算法本身就是基于位运算进行的。许多算法看起来和位运算无关,但是用位运算操作优化一下,性能会提升很多,所以位运算的问题值得好好学习。学习位运算之前,我们要先明确计算机原码、反码、补码的概念和表示方法,之后介绍位运算相关的问题。

2023-08-15 11:05:07 137

原创 算法通关村——阶段总结1(树与递归)

学习了算法通关村的第六至十关,我们对树、递归的知识有了更深入的认识。所以本节主要是我个人本阶段的学习总结,针对我个人认为比较重要的知识点和题型进归纳整理

2023-08-13 11:55:58 302 1

原创 算法通关村——透彻理解二叉搜索树的应用

本节我们介绍两道有挑战的问题,一道是关于二叉搜索树的,一道是从两个数组中寻找中位数的(也与二分搜索相关)。

2023-08-10 17:54:06 194 1

原创 算法通关村——二分查找在搜索树中的应用

我们发现很多题使用前序、后序或者层次遍历都可以解决,但几乎没有中序遍历的。这是因为中序与前后序相比有不一样的特征,例如**中序可以和搜索树结合**在一起,**但是前后序则不行**。二叉搜索树是一个很简单的概念,但是想说清楚却不太容易。

2023-08-07 10:37:51 180 1

原创 算法通关村——透彻理解二分查找

常见的查找算法有顺序查找、二分查找、插值查找,斐波那契查找,树表查找、分块查找、哈希查找等等。其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。这些算法中最重要的无疑是Hash查找和二分查找,所以本节我们先来讲讲二分查找及其变形问题。

2023-08-05 10:50:59 94 1

原创 算法通关村—轻松搞定树的最大深度问题

本节我们来聊聊树的经典问题——最大深度问题,下面我们就来看看二叉树和N叉树的的深度问题及它们的区别与联系。

2023-08-04 15:49:41 389 1

原创 算法通关村—轻松搞定二叉树路径问题

关于二叉树有几道与路径有关的题目,我们来看一下。初次接触可能会感觉有些难,但是这是在为回溯打基础,因为很多回溯问题就是在找路径,甚至要找多条路径。

2023-08-03 10:48:50 131

原创 算法通关村—迭代实现二叉树的后序遍历

二叉树的前、中、后序遍历都是面试中相当重要的内容,本节我们就来讲讲其中比较复杂的后序遍历,如果后序遍历学懂了,前序和中序也就都能学会了。后序遍历的非递归实现有三种基本的思路:反转法、访问标记法、和Morris法。

2023-08-02 09:56:58 436

原创 算法通关村—二叉树的遍历原来如此简单

本节我们来简单了解一下二叉树基本的层序遍历与变换。具体包括一下内容: 最简单的遍历, 二叉树的层序遍历, 层序遍历-自底向上,二叉树的锯齿形层序遍历

2023-08-01 10:38:51 93 1

原创 算法通关村—如何使用中序和后序来恢复一颗二叉树

**第一轮**:我们知道后序最后一个访问的就是根节点,所以根节点就是1。中序遍历的特点是根节点的左子树的元素都在根节点的左侧,右子树的元素都在根节点的右侧,从中遍历序列我们可以划分成如下结构:

2023-07-30 17:23:02 93 1

原创 算法通关村—n数之和问题解析

很多人开始LeetCode的第一题就是求两数之和的问题,事实上除此之外,还有几个类似的问题,例如LeetCode15 三数之和,LeetCode18.四数相加和 LeetCode454.四数相加II等等。我们就集中看一下。

2023-07-29 20:54:09 118

原创 算法通关村—队列基础

队列的特点是其节点的**排序次序和出队次序按入队时间先后确定**,即**先入队者先出队,后入队者后出队**,即我们常说的FIFO(**first in first out**)。队列的实现方法有两种形式,分别**基于数组和链表**。

2023-07-28 17:27:50 21 1

原创 算法通关村—计算器问题解析

给你一个字符表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval()。计算器也是非常常见的问题,我们看一个中等问题。输入:s = “3+2*2”

2023-07-27 21:35:37 125 1

原创 算法通关村—括号匹配问题解析

上一节中我们简单说明了栈的基础知识和实现栈的几种方法,本节我们来讲讲栈的经典问题——括号匹配问题。首先看题目要求,LeetCode20. 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是 有效。有效字符串需满足: 1 左括号必须用相同类型的右括号闭合。 2 左括号必须以正确的顺序闭合。​

2023-07-26 16:46:52 127 1

原创 算法通关村—如何基于数组、链表实现栈

栈和队列是比较特殊的线性表,又称之为访问受限的线性表。栈是很多表达式、符号等运算的基础,也是递归的底层实现。理论上递归能做的题目栈都可以,只是有些问题用栈会非常复杂。栈底层实现仍然是链表或者顺序表,栈与线性表的最大区别是数据的存取的操作被限制了,其插入和删除操作只允许在线性表的一端进行。一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop)。

2023-07-26 10:05:15 193 1

原创 算法通关村——双指针的妙用(删除数组中的元素)

双指针是解决数组元素删除问题的有力工具,常用的双指针包括三种类型:一个在前(slow)一个在后(fast)的方式称为,有些场景需要从两端向中间走,这种就称为,很多题目也会用到,我们接下来会看到很多相关的算法题。还有一种比较少见的,就是从中间向两边走。这三种类型其实非常简单,看的只是两个指针是一起向前走(相亲相爱一起走),还是从两头向中间走(冲破千难万险来爱你),还是从中间向两头走(缘分已尽,就此拜拜)。

2023-07-25 10:53:37 121

原创 算法通关村——不简单的数组增删改查

数组应该是每个学习编程的人第一个会接触到的数据结构,但是其并没有大多数人想象的那么简单,数组算法需要花很多精力去处理边界问题,通常算法写出来了,但是执行起来总是出问题。数组作为最基础,最常用的数据结构,确实需要我们多花时间来掌握,所以本节我们讲讲数组最基础的部分,即增删改查如何实现。

2023-07-24 10:26:57 114

原创 算法通关村第二关——链表指定区间反转问题解析

上一节我讲解了链表反转的各种较为常用的方法,有兴趣的小伙伴可以看看,所以,本小节我们进阶一下,来谈谈链表指定区间的反转如何实现。:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left

2023-07-23 11:41:17 66

原创 算法通关村第二关——终于学会链表反转了

链表反转作为出现频率特别高的算法题目,理应被我们多加重视。LeetCode206题目如下:给你单链表的头结点 head,请你反转链表,并返回反转后的链表本节主要从以下三个比较常用的方法来解决基本的链表反转问题结合下图进行分析,我们可以先建立头结点ans(即虚拟头结点),再创建cur指向头结点head。然后依次将cur所在结点插入到ans的后面(cur插入前应该先创建node保存原先cur的下一个节点),再把cur指向node(即下一个待处理链表的表头),这样依次循环就能得到最后的反转链表了,注意最后返回的应

2023-07-20 17:04:37 128

原创 算法通关村第一关——链表经典问题之两链表第一个公共子节点问题

该题目为输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。

2023-07-19 14:10:02 63

原创 算法通关村第一关——链表青铜挑战笔记

双向链表插入元素,首部、中间和尾部分别会有区别,如何理解?

2023-07-17 23:25:10 395 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除