自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享自己学习过程获得的一些知识

坚持记录学习并进行总结以温故知新

  • 博客(65)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 【数据库】高并发场景下的数据库开发注意要点

在高并发项目中,数据库开发需要全面考虑数据查询和存储的优化,从索引、缓存、读写分离到分库分表、分布式数据库、事务管理等多个方面入手。同时,持续的性能监控和调优也是保障数据库稳定高效运行的关键。

2024-05-14 10:01:59 416

原创 【React Router】React Router学习笔记

React Router 是一个基于 React 之上的强大路由库,它可以让你向应用中快速地添加视图和数据流,同时保持页面与 URL 间的同步。

2023-10-23 20:45:57 421

原创 【Webpack5】Webpack学习笔记(一)

Webpack是一款项目打包工具,将多个模块打包成一个模块,将ESM规范转换为旧的JS语法。

2023-10-18 09:33:53 354

原创 【Linux】Linux远程访问Windows下的MySQL数据库

安装MySQL,这里安装的MySQL 8.0,本来想安装5.7版本,但是arm不支持,amd倒是可以。可以先换一下ubuntu镜像源,我使用的清华源,根据自己的设备情况按需选择Ubuntu ports(ARM)或者ubuntu(aAMD):https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/Linux需要安装MySQL,我是树莓派安装的ubuntu 22.04,所以mysql需要安装ARM 64位的,电脑应该是AMD 64位。

2023-09-28 20:28:37 894

原创 算法通关村第十五关——从40亿个数中产生一个不存在的数的处理方法

给定一个输入文件,包含40亿个非负整数,请设计一个算法,产生一个不存在该文件中的整数,假设你有1GB的内存来完成这项任务。存储的不是这40亿个数据本身,而是其对应的位置。本题不用写代码,能把方法过程说清楚就可以。

2023-09-13 21:51:20 236

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

大部分算法默认给定的数据量都比较小,只有几个或者几十个元素,但是如果将数据量提高到百万甚至几十亿,那么处理逻辑就会发生很大差异。在海量数据中,普通数据结构都无效了,因为内存空间放不下,常规的递归、排序、回溯、贪心和动态规划等思想也无效了,执行都会超时。81​。

2023-09-13 20:55:08 165

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

给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。:按照“找最大用小堆,找最小用大堆,找中间用两个堆”,这道题用最小堆来解决,构造一个大小只有K的最小堆。,比如找第4大的数,先让前四个入堆,之后继续遍历与堆顶元素进行比较,比堆顶元素大才能入堆否则不行。新元素的插入只是替换根元素,然后重新构造最小堆,完成之后的根元素就是第4大的元素。

2023-09-13 20:34:16 203

原创 算法通关村第十四关——原来这就是堆

关于堆的问题总结为口诀:查找:找大用小,大的进;找小用大,小的进。就是找第K大的数,就用小顶堆,后续数据只有比根元素大的时才允许进入堆。如果时找第K小的数,就用大顶堆,后续数据只有比跟元素小才能进堆。排序:升序用小,降序用大。升序用小顶堆,从根节点开始到叶子节点逐渐增大,降序用大顶堆,从根节点开始到叶子节点逐渐减小。

2023-09-13 19:51:15 41

原创 算法通关村第十三关——幂运算问题解析

幂运算为常见的数学运算,形式为a^b,其中a为底数,b为指数,力扣中,幂运算相关的问题主要是判断一个数是不是特定正整数的整数次幂,以及快速幂的处理。

2023-09-10 15:01:00 557

原创 【React】React学习:从初级到高级(四)

如果一个Effect中的逻辑有多个组件用到了,就可以考虑将重复逻辑部分提取出来。Hook的名称必须以’use’开头!自定义Hook共享的是状态逻辑,而不是状态本身。对同一个 Hook 的每个调用是各自完全独立的。使用了useEffect// ...});// ✅ 声明所有依赖首先明白一件事,就是如果你需要写Effect就意味着需要"走出React"和某些外部系统同步,或者需要做一些react中没有对应内置API的事。

2023-09-07 09:31:42 656

原创 算法通关村第十三关——溢出问题处理模板

溢出问题是面试当中输出涉及到数字的一个需要特别注意的地方,典型的题目有三个:数字反转,将字符串转成数字和回文数。

2023-09-05 22:03:47 297

原创 【React】React学习:从初级到高级(三)

随着应用不断变大,应该更有意识的去关注应用状态如何组织,以及数据如何在组件之间流动。冗余或重复的状态往往是缺陷的根源。

2023-09-03 09:40:37 669 1

原创 算法通关村第十二关——字符串反转问题解析

字符串反转是关于字符串算法里的重要问题,虽然不是太难,但需要考虑到一些边界问题。本篇文章就对几道字符串反转题目进行分析。

2023-09-02 20:41:45 311

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

字符串是我们在日常开发中最常处理的数据,虽然它本身不是一种数据结构,但是由于其可以包含所有信息,所以通常作为数据的一种形式出现,由于不同语言创建和管理字符串的方式也各有差异,因此针对不同语言特征又产生了很多问题。常见的字符串转换题目,也就是在大小写字母、数字、特殊字符这几种类型之间进行。但是在转换过程中需要处理几种特殊情况,比如当前元素能否进行转换,如果是字符串转换为数字还要考虑当前元素是不是数字,转换之后是否会溢出等。

2023-08-31 16:38:38 388

原创 【React】React学习:从初级到高级(二)

例如,你可能只想要更新表单中的一个字段,其他的字段仍然使用之前的值。在改变state时,不能改变state中现有的对象,要重新创建一个对象把原来的对象替换掉。这个事件对象还允许阻止传播。事件处理程序是开发者自己写的的函数,它将在用户交互时被触发,如点击、悬停、焦点在表单输入框上等等。中的数组时,需要创建一个新的数组(或者创建一份已有数组的拷贝值),并使用新数组设置。如果子组件定义了一个函数,那么在子组件函数被触发后,会向上冒泡到父级组件层级。对象的哪些部分被改变了,并会依照你的修改创建出一个全新的对象。

2023-08-30 21:18:56 895 1

原创 算法通关村第十一关——位运算实现加减乘除

在计算机中,位运算的效率比加减乘除效率更高。

2023-08-28 15:06:15 285

原创 【React】React学习:从初级到高级(一)

JSX 虽然看起来很像 HTML,但在底层其实被转化为了 JavaScript 对象,你不能在一个函数中返回多个对象,除非用一个数组把他们包装起来。通常,文件中仅包含一个组件时,会选择默认导出,而当文件中包含多个组件或某个值需要导出时,则会选择具名导出。在父组件中引入即可,但是不要在组件中定义组件。一个React组件,不管什么时候给了它一个相同的输入,那么它的输出就是相同的,就像数学公式一样。局部突变的意思就是在渲染时更改刚刚创建的变量和对象,属于内部突变,不会影响函数外部的变量或函数。

2023-08-27 13:15:16 542

原创 算法通关村第十一关——搞清位运算

很多人都记不清源码、反码和补码的区分,都是二进制,其实记忆起来很简单,分为正数和负数来记。正数的原码、反码和补码都是一样的,负数的原码符号位为1,反码是在原码的基础上进行改变:保持符号位不变,其他位取反;补码是在反码的基础上:反码的末位加1。

2023-08-27 13:02:08 407

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

快速排序的是将分治法运用到排序问题的典型例子。基本思想:是通过随机标记一个pivot元素将含有n个元素的序列划分为左右两个子序列left和right,其中left的元素都比pivot小,right的元素都比pivot大,然后再次对left和right分别执行快速排序,这样将左右两个子序列排列完后,整个序列也就是有序的了。但是当数组中包含时,会出现性能下降的现象,此时我们可以使用三路快速排序算法。

2023-08-26 17:01:25 239

原创 算法通关村第九关——中序遍历与搜索树

二叉搜索树按照中序遍历正好是一个递增序列。这两棵树的中序遍历分别是和,都是二叉搜索树。

2023-08-22 20:01:12 788 1

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

常见的查找算法有顺序查找、二分查找、插值查找、斐波那契查找、树表查找、分块查找、哈希查找等。如果进行归类,那么二分查找、插值查找(一种查找算法)以及斐波那契查找都可以归为(大类)。而插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。这些算法中最重要的就是和。xarrr−arrikey−arri])r−i​其中,i和r分别代表数组的第一个和最后一个索引,key代表待查找的元素。

2023-08-22 18:56:06 325

原创 算法通关村第八关——轻松搞定二叉树的深度和高度问题

从局部到整体递推分情况讨论,明确递归终止条件,得出完整的递归逻辑,如果想验证的话,就从整体到局部画图推演。

2023-08-19 15:39:22 130

原创 算法通关村第八关——轻松搞定翻转二叉树

观察图中翻转前后的二叉树,我们不难发现,翻转过程中,只需要把每一个节点的左右子节点交换以下就可以了,但是我们应该以什么样的顺序来遍历二叉树呢?如果是后序遍历,就先交换叶子结点,如果当前遍历到的节点的左右子树均已翻转,就只需要交换两棵子树位置,就可以完成二叉树的翻转。也可以实现翻转,先将二叉树的根节点放入队列,然后从队列中拿出节点,交换节点的左右子节点,如果交换后的左右子节点不为空,则将左右子节点放入队列,再拿出节点,交换左右子节点,二叉树的经典算法问题主要考察的还是对二叉树前中后序三种遍历方法的掌握。

2023-08-18 15:51:20 152 1

原创 算法通关村第七关——递归和迭代实现二叉树前中后序遍历

迭代主要是模拟一个系统栈出来,将节点压入栈中,再取出。前中序遍历容易理解,后序遍历较为复杂,涉及到反转操作。只要调整前序遍历的左右顺序就可以得到后序遍历。反转后的后序遍历与前序遍历相比就是左右顺序不同

2023-08-14 20:09:35 310

原创 算法通关村第六关——原来如此简单

这道题也是层次遍历的变种题,我们思考一下,既然需要我们找到每一层最右边节点的值,那在我们遍历每一层节点的时候,我们已经将这层节点放入队列,是不是只需要判定一下。遍历当前层次的节点时,如果这个节点还有子节点,就将其加入队列中;如果当前层次遍历完了,就将队列的长度重新指向新的队列长度。我们先看一下基础的层次遍历题,力扣102题:给你一个二叉树,请你返回其按层序遍历得到的节点值。就是从根节点开始,先访问根节点下面一层全部元素,再访问之后的层次,直到访问完二叉树的叶子节点那层。

2023-08-14 14:53:30 92

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

Tree:表现得是一种,为nn≥0个节点构成的有限集合,当n=0时,称为,对于任一颗非空树(n>0),它具备以下性质:​ 树中有一个根(root)节点,用r表示​ 其余节点可分为m(m>0)个的有限集T1​T2​...Tm​,其中每个集合本身又是一棵树,称为原来树的Subtree。子树不相交;除了根结点外,每个结点有且仅有一个父结点;一颗N个结点的树有N-1条边。

2023-08-08 16:35:08 327

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

首先,三层循环想都不要想!时间复杂度太高了,直接放弃。比较好的办法就是“排序+双指针”。先将数组升序排序,之后固定一位元素,再用两数之和思想找剩下的两个元素。我们可以使用哈希表法来将寻找第二个数的时间复杂度降低。

2023-08-08 10:43:05 242

原创 算法通关村第五关——HashMap和队列问题分析

Hash也称为散列。就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。假设数组array存放的是1到15这些数,现在要存在一个大小是7的Hash表中,存储的位置计算公式是:对于如何取值,比如要取13,我们同样利用计算存储位置的计算公式13 % 7 = 6,我们访问array[6]13是在的,返回true。如果想看20在不在哈希表里,操作同上20 % 7 = 6,访问array[6],没有20,返回false。通过上面的例子可以发现有一些数据被存放到同一个位置了。

2023-08-06 16:53:32 175

原创 算法通关村第四关——最大栈问题解析

弹出栈顶元素时我们同步将辅助栈中栈顶元素弹出,这样就可以保证只要辅助栈不为空,辅助栈里的栈顶元素始终都是当前栈的最大值。为了在最短事件内获得栈中的最大值,就不应该在执行。存储到另外一个辅助栈中,这样在后面的操作过程中只要栈顶元素为。的过程中就应该计算好当前栈中的最大值。不会被弹出,在操作过程中的任意一个时刻,只要。在最大栈的问题上,除了实现普通栈拥有的方法。:基于栈后进先出的特点,那么在将一个数。在栈顶,那么栈里的元素就一定是。压入栈中时,如果栈里已经存在。入栈时,把当前栈中的最大值。

2023-08-06 10:29:45 226

原创 算法通关村第四关——如何基于数组实现栈

具有一定操作约束的线性表,只在一端(栈顶,Top)做插入(Push)、删除(Pop),不可操作的一端称为栈底(Bottom)。后进先出(Last In First Out, LIFO),若栈中没有元素则称为空栈。一维数组栈顶单链表链栈栈可以用于表达式求值,如后缀表达式求值、中缀表达式求值、函数调用及递归实现、深度优先搜索、回溯算法等push(E)Epop()peek()empty()在设计栈时,不管用数组还是链表,都需要实现上面几个方法。

2023-08-04 21:50:42 120

原创 算法通关村第三关——双指针的妙用

所谓的双指针其实就是两个变量,不一定真的是指针。双指针可以分为快慢双指针(以不同速度向同一边走)、对撞双指针(从两边向中间走)、相反双指针(从中间向两边走)适用场景:处理数组、字符串问题,比如删除有序数组中的重复项、元素奇偶移动、数组轮转、数组区间、字符串空格替换等。

2023-08-03 14:59:09 134

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

对数组进行CRUD(增删改查)尤其要注意边界条件。

2023-07-31 12:59:09 110

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

在进行反转的过程中,难点就是想清楚结点指针该怎么变化,搞清楚这点,反转就容易理解了。

2023-07-28 21:09:06 122

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

链表反转之所以重要,是要为其涉及到结点的增加、删除等多种操作,可以有效考察思维能力和代码驾驭能力,此外它也是很多题目的的基础,比如指定区间反转、链表K个一组反转。有两种较好的解法,带头结点和不带头结点(迭代法)。

2023-07-27 19:44:00 51

原创 算法通关村第一关——链表中环的问题

力扣141,给定一个链表,判断单向链表中有无环,进一步确定环的入口。

2023-07-27 15:46:22 68

原创 算法通关村第一关——链表经典问题之双指针专题笔记

快慢指针真的是一种简单又很有效率的方法,还可以将其应用到很多链表题目当中。以后刷算法题或者面试时,遇到链表的题目可以优先考虑一下。

2023-07-26 10:15:06 81

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

实现元素的插入和删除都需要考虑结点的两个指针指向的改变,基于单向链表的插入和删除再进行双向列表的插入和删除就比较容易理解了,不再赘述。:和单向链表一样都是通过指针将一个个结点连接起来,和单链表不同的地方在于单链表每个结点的指向只有一个,双向链表每个结点都有两个指针,:结点可以认为是一个数据+指向这个数据的指针构成的,多个这样的结点构成了链表,而位于单链表首位的结点称为头结点。向链表中插入新的元素,需要考虑三种情况,链表的头部、身部、尾部。头部插入元素,只需创建一个新的结点再将其连接到原来的链表即可。

2023-07-24 18:58:43 52

原创 【Python】深拷贝与浅拷贝

最近在编程过程中遇到了深拷贝与浅拷贝的问题,属于细节问题,不在乎的话可能会出问题,故进行总结。在Python中,对象赋值在本质上是对对象的引用,当创建一个对象把它赋值给另一个变量的时候,Python并没有拷贝这个对象,而只是拷贝了这个对象的引用,

2023-06-05 10:30:56 132

原创 树莓派nano编辑器常用快捷键

以下是树莓派nano编辑器常用的快捷键:

2023-05-08 13:59:28 1777 1

原创 【Node.js】解决执行npm命令报错:命令语法不正确

解决执行npm命令报错:命令语法不正确。

2023-04-01 17:32:52 2853 5

ti_cgt_c2000_20.2.1.LTS_windows_installer.exe

CCS9已经不支持一些老的芯片,需要自己安装C2000 设备支持,安装C2000 编译器,特此上传C2000编译器,希望可以帮大家省一些时间

2020-05-24

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

TA关注的人

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