自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode每日练习之链表常见题目

将链表存入到栈中,然后一边遍历,一边出栈比较,如果出现不相等则返回false,否则返回true。,请你判断该链表是否为回文链表。输入两个链表,找出它们的第一个公共节点。给你一个单链表的头节点。

2023-09-18 17:14:55 247

原创 算法通关村 | 透彻理解动态规划

对于动态规划,我们自始至终,都要在大脑里装一个数组(可能是一维,也可能是二维),要看这个数组每个元素的含义是什么(也就是状态),要看每个数组是根据谁来算的(状态转移方程),然后就是从小到大挨着将数组填满(从小到大计算,实现记忆化搜索),最后看那个位置是我们想要的结果。

2023-09-15 21:37:00 405

原创 MySQL索引

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。优势:提高数据检索的效率,降低数据库IO成本,通过索引排序,降低数据的排序成本,降低cpu的消耗缺点:索引也是占数据空间的,索引大大提高了查询效率但同时降低了更新表的速度,insert,update,delete。

2023-09-14 21:36:07 260

原创 算法通关18关 | 回溯模板如何解决复原IP问题

LeetCode93 有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用','分割。18关的前几篇文章看过之后,对回溯的模板问题基本解题思路就知道了,就是固定的for循环问题,外层for循环控制横向,递归控制纵向,还要考虑撤销操作和元素是否能被重复利用问题,重复利用的情景较少,只用注意撤销就行。

2023-09-13 21:37:43 351

原创 Vue.js not detected解决方法

Vue.js not detected解决方法

2023-09-13 16:10:17 126

原创 算法通关18关 | 回溯模板如何解决排列和单词搜索问题

LeetCode46 给定一个没有重复数字的序列,返回其所有可能的全排列,LeetCode79 给定一个m x n 二维字符网格board和一个字符串单词。如果word存在在网格中,返回true,否则返回false。

2023-09-12 21:35:20 157

原创 算法通关村18关 | 回溯模板如何解决分割回文串问题

LeetCode131 分割回文串,给你一个字符串s,请你将s分割成一些字串,使每个字串都是回文串,返回s所有可能的分割方案。回文串是正着和反着读都是一样的字符串。

2023-09-11 21:33:50 619

原创 算法通关村18关 | 透析回溯的模板

回溯有清晰的解题模板,例如组合,分割、子集、排列、棋盘等,回溯和递归类似,不同的是撤销操作需要特别思考。

2023-09-10 19:59:54 396

原创 算法通关村17关 | 透析跳跃游戏

LeetCode55 给定一个非负整数数组,最初位于数组的第一个位置,数组中的每个元素代表你再该位置可以跳跃的最大长度,判断你是否能够达到最后一个位置。

2023-09-08 21:33:00 570

原创 算法通关村17关 | 盘点面试大热门之区间问题

LeetCode252 给定一个会议时间安排的数组intervals,每个会议时间都包括开始和结束时间,intervals[i] = [start, endi],请你判断一个人是否能参加这里面的全部会议。

2023-09-07 19:02:57 135

原创 算法通关村17关 | 贪心算法其实很简单

贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法;贪心算法所得到的结果不一定是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。《算法导论》给出了明确答案——贪心算法不能保证异地你个能得到最优解,但是相对很多问题确实可以得到最优解。内心:这跟没说不是一样?经典应用场景1. 排序问题:选择排序、拓扑排序2. 优先队列:堆排序3. 赫尔曼压缩编码。

2023-09-06 10:07:25 78

原创 算法通关村16关 | 堆与滑动窗口问题结合

LeetCode239 给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧,你可以看到在滑动窗口内的k个数字,滑动窗口每次只向右移动一位,返回滑动窗口中的最大值。

2023-09-05 08:16:29 207

原创 算法通关村16关 | 滑动窗口最长字串专题

滑动窗口最长字串专题,LeetCode3 给定一个字符串s,请你找出其中不含有重复字符的最长字串的长度。

2023-09-04 20:41:48 291 1

原创 算法通关村16关 | 滑动窗口如此简单

滑动窗口就是快慢指针问题,快指针走一步,慢指针走一步,维护窗口的大小。下图有大小为3的滑动窗口移动示例。

2023-09-03 11:17:33 380 1

原创 算法通关村15关 | 从10亿数字寻找最小的100万个数字

设计一个算法,给定一个10亿个数字,找出最小的100万个数字,假定计算机内存足以容纳全部10亿个数字。

2023-09-02 12:57:28 101

原创 算法通关村15关 | 从40亿中产生一个不存在的整数

给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。进阶:如果只有10MB的内存可用,该怎么办?

2023-09-02 11:33:45 72 1

原创 算法通关村15关 | 超大规模数据场景常见问题

创建一个长度为32000的数组,每个位置存储0或者1,因为要存的最大值可能是32000,所以我们可以要存多大的数,就在对应的位置0换成1即可,比如存1,数组第1位就是1,索引是0,其余位置是0。本身是一道海量数据问题的热身题,如果去掉“只有4KB”的要求,我们可以先创建一个大小为N的数组,然后将这些数据放进来,但是这里数组最大为32KB,而题目有4KB的内存限制,我们就必须先确定该如何存放这个数组。如果发现数组元素是v,那么就将位置为v的设置为1,碰到重复元素,就输出一下。

2023-09-02 10:59:42 391

原创 算法通关村14关 | 数据流中位数问题

中位数是有序列表中间的数,如果列表长度是偶数,中位数是中间两个数的平均值,例如:[2,3,4]的中位数是3,[2,3]中位数是(2+3)/ 2= 2.5设计一个数据结构:void addNum(int num) 从数据流中添加一个整数到数据结构中double findMedian()-返回目前所有元素的中位数。

2023-09-01 20:55:35 258

原创 算法通关村14关 | 堆在数组中找第k大的元素应用

给定整数数组nums和整数k,请返回数组中第k个最大的元素,

2023-09-01 20:14:14 240

原创 算法通关村14关 | 堆结构

堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一维数组中的结构,对的结构有两种,一种称为大顶堆,一种称为小顶堆。也可称为大根堆,小根堆,或者最大堆,最小堆,假设一个节点的下标为i。有些地方叫做堆,有些地方叫做队列,两者到底是什么关系?优先队列:就是一种队列,它的工作是poll()/peek()出队列中最大、最小的那个元素,所以叫带有优先级的队列。能够实现优先功能的队列不一定只有堆,例如二项堆、平衡树、线段树、c++会用二进制分组的vector来实现一个优先队列。

2023-09-01 15:21:42 229 1

原创 算法通关村十三关 | 辗转相除法、素数和丑数

辗转相除法、素数、合数和丑数

2023-09-01 11:36:09 214

原创 算法通关村十三关 | 数组字符串加法专题

数组和字符串题目实现加法,较为简单,记住模板即可

2023-08-26 09:45:20 631

原创 算法通关村十三关 | 进制转换问题处理模板

给定一个十进制数M,以及需要转换的进制数N,将十进制数转化为N进制数,M是32位整,2

2023-08-25 13:07:15 183

原创 算法通关村十二关 | 字符串前缀问题

题目:LeetCode14,

2023-08-24 18:15:59 259

原创 算法通关村十二关 | 字符串经典题目

字符串问题,大家记得模板思路即可,一个类型的题目有很多种。

2023-08-23 20:36:11 241

原创 算法通关村十二关 | 字符串转换

LeetCode709:给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。每个字母都是有确定的ASCII的,可以根据码表操作子字符串,常见的ASCII范围是:将大写字母转换为小写字母,只需在原来的ASCII基础上加上32即可。

2023-08-22 09:44:13 312

原创 算法通过村十一关 | 如何实现压缩存储

创建一个长度为32000的数组,每个位置存储0或者1,因为要存的最大值可能是32000,所以我们可以要存多大的数,就在对应的位置0换成1即可,比如存1,数组第1位就是1,索引是0,其余位置是0。本身是一道海量数据问题的热身题,如果去掉“只有4KB”的要求,我们可以先创建一个大小为N的数组,然后将这些数据放进来,但是这里数组最大为32KB,而题目有4KB的内存限制,我们就必须先确定该如何存放这个数组。如果发现数组元素是v,那么就将位置为v的设置为1,碰到重复元素,就输出一下。暂时只知道思路,代码底层在研究。

2023-08-21 21:03:00 178

原创 MySQL卸载-Linux版

卸载上述查询出来的所有的MySQL安装包。删除MySQL的数据存放目录。删除MySQL的配置文件备份。查询MySQL的安装文件。

2023-08-20 14:48:45 153

原创 MySQL8.0.26-Linux版安装

执行上述的SQL会报错,原因是因为设置的密码太简单,密码复杂度不够。我们可以设置密码的复杂度为简单类型,密码长度为4。默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问。登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。降低密码的校验规则之后,再次执行上述修改密码的指令。然后输入上述查询到的自动生成的密码, 完成登录 .Linux的版本为 CentOS7;云服务器或者虚拟机都可以;

2023-08-20 14:46:47 382

原创 算法通关村十一关 | 位运算实现加法和乘法

在计算机中,位运算的效率要比加减乘除的效率更高,因此在高性能软件中源码中大量使用,计算机里各种运算基本上都是位运算。

2023-08-20 11:55:12 320

原创 算法通关村十一关 | 位运算的规则

一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是自带符号的,在计算机用一个数的最高位存放符号,整数为0,负数为1。比如,十进制中的数+3,计算机字长8位,转换成二进制就是00000011.如果是-3.就是10000011。两者都是机器数。:因为机器数的第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其实最高位1代表负,其真正数值是-3,而不是形式数值131(10000011转换成10进制等于131)。

2023-08-19 20:34:19 468

原创 算法通关村第十关 | 归并排序

分治法可以看作是"分而治之"的意思,也就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,从而使得原问题的解即子问题的解的合并。的思想实现的排序方法,该算法采用经典的分治策略(分就是将问题分成一些小的问题分别求解,而治则将分的阶段得到的各答案“合”在一起)。归并排序(MERARE-SORT)简单来说就是将大的序列先视为若干个比较小的数组,分成比较小的结构,然后是利用。归并排序算法就是应用归并思想的一个典型例子。都需要递归地解决子问题,并在最后合并子问题的解。

2023-08-18 07:33:45 251

原创 数据库的事务隔离级别(脏读、不可重复读、幻读)

read uncommitted,存在脏读、不可重复度、幻读read committed,存在不可重复读、幻读repeatable read(默认),存在幻读serializable(串行化,序列化),都不存在前提:准备一个表-- 账务信息。

2023-08-17 13:08:32 113 1

原创 算法通关村第十关 | 数组中第k个最大元素

LeetCode:数组中的第k个最大元素,给定整数数组nums和整数k,请返回数组中第k个最大的元素,请注意,你需要找的是数组排序后第k个最大的元素,而不是第k个不同的元素。上面红框位置表示哨兵交换过后的位置,根据指针的移动情况,当指针停止的时候进行比较,大于哨兵,就去哨兵的左侧,而它空下来的位置就给哨兵,即红色圈出的位置。left: arr[left] < pivot时,不移动,arr[left] > pivot时,left++。运用快速排序的方法对数组进行排好序,然后选择第k个元素就是要求的结果,

2023-08-17 08:25:45 336

原创 算法通关村第十关 | 快速排序

如果我们每次选的pivot每次都正好在中间,效率时最高的,但是这是无法保证的,因此我们需要从最好、最坏和中间情况来分析。,将左右子序列运用同样的方法排序,知道最后剩余一个元素的时候结束,(其中的pivot这里用数组中间的元素)。最坏情况就是每次选择的恰好是left节点作为pivot,如果元素恰好都是逆序的,此时间复杂度为O(n^2)每次选择的都是中间结点,此时序列每次都是长度相等的列,此时的时间复杂度为O(nlogn)right: arr[right] > pivot时,不移动,否则,right--

2023-08-16 20:26:19 708

原创 算法通关村第九关 | 有序数组转搜索二叉树

题目:LeetCode108给你一个整数数组nums,其中元素已经按照升序排列,请你将其转换为一颗高度平衡的二叉搜索树。高度平衡二叉树是一颗满足每个结点的左右两个子树的高度差的绝对值不超过1的二叉树。它的左右子树也分别为二叉树。上的所有节点的值均小于它根节点的值;上所有节点的值均大于它的根节点的值;若它的左子树不为空,则。若它的右子树不为空,则。

2023-08-15 21:19:16 120

原创 算法通关村第九关 | 二叉树查找和搜索树原理

LeetCode852:题目核心意思是在数组中,从0到i是递增的,从i+1到数组最后是递减的,让你找到这个最高点。mid在上升阶段的时候,满足arr[mid] > arr[mid - 1] && arr[mid] < arr[mid + 1];mid在顶峰的时候,满足arr[mid] > arr[mid - 1] && arr[mid] > arr[mid + 1];mid在下降阶段,满足arr[mid] < arr[mid - 1] && arr[mid] > arr[mid + 1];

2023-08-15 08:15:20 189

原创 算法通关村第九关 | 二分查找

基本查找也是顺序查找,我们看一下代码://顺序查找i++) {return i;return -1;

2023-08-13 11:44:11 86

原创 算法通关村第八关 | 寻找祖先问题

6的祖先结点有 3和5,7的是3,5,2,所以6和7的最近公共祖先是5。最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先,且x的深度尽可能大(一个节点也可以是它自己的祖先)。要想找到两个节点的最近公共祖先节点,我们可以从两个节点往上找,每个节点都往上走,一直走到根节点,我们在上面的树中查找6和7的公共祖先,遍历的逐步向下,假如某个时刻访问的结点为root,我们。LeetCode236,给定一个二叉树,找到该树中的两个指定结点的最近公共祖先,

2023-08-13 11:40:12 111

原创 算法通关村第八关 | 轻松搞定二叉树深度

子节点的判断逻辑和node(3)的判断逻辑是一样的,那么什么时候结束,也就是root == null返回0,至于入参,就是要处理的子树的根节点root,而返回值则是当前root所在子树的最大高度。说明:叶子结点是没有子结点的结点。很显然对于node(20),最大深度自然是左右子结点+1,左右子节点有的可能为空,只要有一个,树的最大高度就是1 + 1 = 2。对于node(3),最大深度是左右结点+1,左右子结点有的可能为空,只要有一个,树的最大深度就是1+1 = 2。下图给的例子最大深度为3。

2023-08-10 21:12:30 77

空空如也

空空如也

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

TA关注的人

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