自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法训练记录——Day32】

怎么跳不重要,关键是覆盖范围,于是想到用一个变量记录当前能到达的最远点,遍历数组,更新最远点,最后只要最远点>size,那么就可以到达。贪心需要把问题分解为若干个子问题的集合,子问题是什么呢?优秀,其实就是每天的正利润之和,把一段时间分解为若干天,只要为正就买入。思路:贪心没理解,这个题毫无头绪。感觉就是求递增子序列是吧。第一天没有利润,利润的序列比股票序列少一天。知道了这层关系,那这道题就很简单了。思路:直接就是忘了,看了一眼题解。

2024-06-21 21:48:30 397

原创 【算法训练记录——Day31】

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。

2024-06-18 22:16:45 303

原创 【算法训练记录——Day28】

按照我的想法,当 i>0 时,表示当前已经进行了一次回溯,开始遍历下一个元素,此时如果当前元素和前一元素相同,那么本次以当前元素为根的回溯就是不必要的,因为已经有相同元素进行了一次回溯。,这两次的结果应该是相同的。但写代码的时候把 == false 写成了 == true,结果也能运行,但是没明白为什么。思路:刚开始认为把startIndex换成0不就是遍历全部了,但是写了一下发现,换成0 递归的逻辑应该是什么呢,从下一个开始,然后每次遍历全部元素,那不就有很多重复的?应该是要排序,然后跳过一些重复元素。

2024-06-13 22:10:47 398

原创 【算法训练记录——Day27】

如何去重,排序后,在for循环遍历时,如果当前元素已经访问,那么下一个和他相等的元素就可以跳过,按照这个思路,在for循环中如果是第一次进入,那么不需要做判断,此后访问元素时,都判断是否和前一个元素相等,如果相等,直接跳过。思路:和组合总和一样,先从candidates中遍历选择元素,但是纵向递归时所选择元素要包括当前元素。剪枝:集合排序,当sum大于target时,整个for循环退出。思路:和上一题的区别在于这个要去重。● 40.组合总和II。● 131.分割回文串。

2024-06-03 23:27:28 341

原创 【算法训练记录——Day25】

这里字符串是固定的,但是字符串所代表的内容是可变的,因此遍历dp,回溯找同一个地方的不同值。思路:一上强度就不知道for循环应该遍历什么了,是遍历dp呢还是遍历字符串。思路:和上一题组合总和差不多,区别在于这里回溯需要给sum也回溯。● 17.电话号码的字母组合。● 216.组合总和III。

2024-06-03 16:16:29 340

原创 【算法训练记录——Day24】

上述代码在进行递归时,必须要保证至少存在k个元素,即path.size()(集合中已有元素)+ (n - i + 1) (剩余可访问元素)>= k;这样集合的元素个数才是满足k个的。回溯,将组合问题抽象成n叉树,for循环控制宽度,递归的深度控制二叉树的深度。循环终止条件:集合中存在k个数。思路:k层for循环,不会。

2024-06-03 15:06:15 171

原创 【基于Raft的k-v存储数据库实现】

建立在网络之上的软件系统。一个分布式系统是一组计算机系统一起工作,在终端用户看来,就像一台计算机在工作一样。分布式系统的主要特点是:资源共享:分布式系统中的计算机拥有共享的状态,它们同时运行,独立机器的故障不会影响整个系统的正常运行。动态分配:系统可以动态地分配任务,有效地利用分散的物理和逻辑资源。透明性:对用户来说,分布式系统展现为一个整体,用户无需关心背后的复杂性。分布式选举协议:Raft(一致性算法,共识算法)Leader: 处理客户端交互和日志复制操作等,一般只有一个Leader节点。

2024-06-02 14:26:32 907

原创 【算法训练记录——Day23】

上面方法的代码之所以越界,是因为当left == right == size的时候,但我的假设是左闭右开,所以sortedArrayToBST传入的是size,因此不能让left==size,并且 node->left = recursion(nums, left, index - 1)传入的right也没必要减1,减1是左闭右闭的思路。除非倒着来,之前说过倒着来就是回溯,难道把中序遍历结果回溯?思路:二叉搜索树中序遍历结果为递增(左根右),因此将中序遍历结果加入栈,然后遍历栈,修改元素值即可。

2024-06-02 14:19:09 413

原创 【算法训练记录——Day22】

本来的想法是,中序遍历,因为所有节点都是递增的,当遇到第一个大于val的节点时,将node放在该节点的左侧,可以保证该节点的左侧都小于val和该节点。写了以后发现不可行,因为该节点的孩子不一定为空。思路:二叉搜索树有序,左子树小于根小于右子树,因此根节点大于最大值,则祖先在左孩子,小于最小值,祖先在右孩子。根据二叉搜索树的规律找到节点位置,然后插入。● 235.二叉搜索树的最近公共祖先。● 701.二叉搜索树中的插入操作。● 450.删除二叉搜索树中的节点。此处假设p一直小于q。

2024-06-01 00:00:27 323

原创 【算法训练记录——Day21】

让左孩子和右孩子都返回是否存在孩子(存在则返回孩子),如果左孩子和右孩子都不为空,说明root就是最近祖先,因为只有两个孩子,一左一右,不能再近了。如果其中一个为空,那么公共祖先一定在另一个孩子,因为一定有公共祖先。看了题解,思路二,中序遍历,如果为众数肯定相邻,记录最大相邻元素个数,大于最大值清空res并更新,等于直接加入。思路: 遍历,unordered_map记录出现频率,再遍历map选出最大值。找最近公共祖先,首先想到的是自底向上遍历,后序遍历(回溯)刚好满足条件。● 501.二叉搜索树中的众数。

2024-05-31 12:38:13 282

原创 【算法训练记录——Day20】

2. 若数组元素为1,返回,否则继续。● 700.二叉搜索树中的搜索。思路:考二叉搜索树的概念、特性。● 98.验证二叉搜索树。● 654.最大二叉树。● 617.合并二叉树。3. 构建左子树数组。4. 构建右子树数组。

2024-05-31 00:44:26 245

原创 【算法训练记录——Day18】

思路:每次递归传入的targetSum为targetSum-cur->val,并传入vector记录当前已走路线,当找到叶子节点时,若当前targetSum为0,则返回,没找到叶子节点则递归寻找左子树和右子树。收获:递归想清楚结束和过程后并不困难,但是始终要清楚递归的参数是什么,在写这段代码时,traversal函数中进行递归时,我传入的targetSum和定义不符,导致结果半天出不来,下次还是要注意。思路:循环终止条件:遍历到叶子节点,targetSum == sum 且 无子节点,返回true。

2024-05-28 18:54:42 408

原创 【算法训练记录——Day17】

寻找左叶子:cur->left!终止条件:扫描到叶子节点。● 257.二叉树的所有路径。递归结束条件: 找到左叶子。● 110.平衡二叉树。● 404.左叶子之和。

2024-05-27 22:56:04 166

原创 【算法训练记录——Day16】

需要临时节点辅助,先一直遍历到左节点为空,再开始从栈中读取元素,保证左——根右。cur->right == nullptr, 则深度取左子树+1。cur->left == nullptr, 则深度取右子树+1。思路:递归遍历二叉树,每次访问子节点deep+1。确定循环结束条件:cur为空时,深度为0;n叉树差不多, 区别在于访问子树。● 222.完全二叉树的节点个数。● 104.二叉树的最大深度。● 559.n叉树的最大深度。● 111.二叉树的最小深度。否不为空,取最小子树+1;思路:递归访问节点,

2024-05-27 22:03:12 322

原创 【算法训练记录——Day15】

递归:层序遍历递归需要引入深度,当前深度等于集合内元素数量时,加入空数组,在当前深度的数组内添加元素。刷了很多题,但是这两天一直没写博客,补一下。● 101.对称二叉树 2。能解决很多同类型题目。● 226.翻转二叉树。迭代法暂时就不看了。● 层序遍历 10。迭代:迭代主要要理解。

2024-05-27 19:00:11 244

原创 【算法训练记录——Day13】

非递归:前序遍历根左右,后序遍历左右根,即根右左->reverse。

2024-05-22 17:04:34 234

原创 【算法训练记录——Day12】

此时val < front,若后面加入两个val1和val2,val1 < val2 < front,若front出队列,此使需要保证front依然是最大值,因此val 不但要小于front还要小于 back,即始终是单调递减队列。单调队列,当前 val > back时(back始终是队列最小值),将队列中小于back的元素出队,然后push(val),这可以保证front始终是最大值。另一种是,front不是最大值,此使为了让front是最大值,因为val 始终比 back 大,队列清空,只剩val。

2024-05-22 11:45:00 221

原创 【算法训练记录——Day11】

思路:没有想到用栈,刚开始以为“({)}”这种也行,直接一次循环,后来发现不行,那就只能重新想办法,看题解用栈。思路:有了上一题的经验,还是明白应该用栈的,当前元素和栈顶相同出栈,不同直接入栈。思路:逆波兰式是后缀表达式,使用栈保存数字,遇到操作符弹出栈顶两个元素,运算后再入栈。方法二:栈也是只用最后一位,但需要反转整个字符串。用字符串替换栈也可以做到。● 1047.删除字符串中的所有相邻重复项。● 150.逆波兰表达式求值。● 20.有效的括号。

2024-05-19 11:10:58 250

原创 【c++11常见新特性总结】

为什么要总结,主要是面试可能问,要回答的有体系,二是项目需要也得了解了解参照。

2024-05-18 16:07:18 522

原创 【算法训练记录——Day10】

● 理论基础● 232.用栈实现队列● 225. 用队列实现栈。

2024-05-17 19:05:43 328

原创 【算法训练记录——Day09】

解法二:重复子串是最长相等前后缀不包含的那个。直接记结论,也没难记的。就当练习一下next数组求解吧。(next数组)前缀表:起始位置到下标i之前(包括i)的子串中,有多大长度的相同前缀后缀。模式串的特质是最长相等前后缀,如果它可以由字串重复多次构成,那子串应该是这个前后缀的子集。好家伙,最长相等前后缀不包含的子串就是重复的子串。就是和求next数组差不多的用法。思路:联系KMP算法,求解next数组。●28. 实现 strStr()思路:kmp算法的一次应用?●459.重复的子字符串。

2024-05-17 14:25:51 726

原创 【算法训练记录——Day08】

想到了从后往前赋值,愣是没想到改变大小,因为我理解改变大小就得先遍历一次字符串,时间复杂度不是又上来了?收获:在做题时习惯手撸,基本上很少用库函数,对库函数的了解程度也逐渐下滑,经常忘记可以用库函数,这也不好,该用库函数还是要用,可以方便很多。2.思路:原地修改数组,找到单词组,反转后提至字符串头(总体思路和删除元素一样)。可是替换一个数字就要往后挪呀,怎么搞,感觉这个已经是最优解了,时间复杂度很低了。思路1:先反转子字符串,再反转整个字符串。思路: 反转两个字串,再反转整串。多看,多学,菜就多练。

2024-05-15 17:32:15 256

原创 【算法训练记录——Day07】

其实在本题的情况下,使用map的空间消耗要比数组大一些的,因为map要维护红黑树或者哈希表,而且还要做哈希函数,是费时的!用unordered_map记录mag中字符及个数,遍历ran,从中寻找找到-1,找不到或小于0返回;应该还是hash保存nums[i] + nums[j] 的负数,然后去nums[k]中查询。如果本题想难度升级:就是给出一个数组(而不是四个数组),在这里找出四个元素相加等于0,答案中不可以包含重复的四元组。思路:是的,又是做过但忘记的,怎么办,学而不思则罔,可我也思了呀。

2024-05-15 08:07:51 236

原创 【算法训练记录——Day06哈希】

2. 遍历一次数组每次都判断nums[i]是否在集合里,不在保存target-nums[i],在的话说明当前数存在对应数字,结束。哈希函数在计算机上的应用包括保证数据的完整性、数据加密、数字签名等。Hash碰撞是指两个不同的输入值,经过哈希函数的处理后,得到相同的输出值,这种情况被称之为哈希碰撞。思路:unordered_map或者数组,s出现一次+一次,t出现一次-一次,最终全为0相等。思路:遍历一次数组,拿到target-nums[i]的集合,再从nums中找是否有交集。● 349. 两个数组的交集。

2024-05-13 21:56:26 794

原创 【算法训练记录——Day04】

(补一篇)现在有时间了,可以开始跟上进度了,今日目标——链表● 24. 两两交换链表中的节点● 19.删除链表的倒数第N个节点● 07. 链表相交● 142.环形链表II● 总结24.两两交换链表中的节点思路:a->b->c … a->c & b->c … b->a->c?刚开始写的代码,乍一看好像没问题呀,但是少了节点,cur节点没了?while(node!这个写法让链表断开了,cur确实是更新了,但是没有办法跟head联系起来。

2024-05-13 18:55:47 248

原创 【算法训练记录——Day03】

思路:链表反转只需要改变链表连接顺序,即使用临时节点保存net节点,断开cur 和 net之间的连接,将cur指向pre。1.由于删除元素需要先找到前一节点,所以分两种情况(删除头节点和删除子节点)链表在内存中是不连续分布的,指针域的指针链接在内存中各个节点。思路:链表元素删除需要先找到该节点的前一个节点。这个好像没啥说的,模拟就完了。

2024-05-12 23:52:39 297 1

原创 【算法训练记录——Day02】

这几天都在外面,上一篇博客还是在网吧写的,真是绝了哈哈哈哈哈哈,回来了就要跟上进度,不能被拉下太多了,冲冲冲!!!977.有序数组的平方已经很久没有感受到写一次代码就Ac的感觉了,果然爽(简单题我重拳出击)。思路: 非递减排序整数数组有正有负,那么平方一定是两边大,中间最小。用双指针法,头尾对比后加入新队列即可。209.长度最小的子数组这题是中等题,给自己的时间是20min,没有思路就看题解。(实际耗时45min)

2024-05-12 17:09:47 412

原创 【算法训练记录】

二分查找谁都会,但是做题一直处于debug状态,不知道什么时候 <= ,不知道什么时候 +1,有时候稀里糊涂就对了,也就以为掌握了。算法刷过一段时间,但是一年没接触,基本上做不出来了,而且很多问题只是简单会做,但没有理解透彻,开始跟随记录,希望能有所收获。看了题解确实对二分理解更深了,以后应该不会疯狂debug了。双指针法: 慢指针负责修改数组元素,快指针负责检索排除。

2024-05-09 20:24:47 393 1

原创 【vue node环境配置保姆级教程】

下载地址:https://github.com/coreybutler/nvm-windows/releases安装路径:D:\Nvm安装方法:2.把 D:\Nvm\nvm\setting 换一下3.管理员方式运行 cmd , nvm -v查看是否已安装4.运行 nvm install 12.17.0(12.17.0为node版本号,具体自己选,*这里是win7,用不了高版本)运行 (可能出现乱码,用管理员方式重新运行就好了)检查node安装情况6.安装nrm管理镜像7.配置环境变

2022-06-27 09:50:58 717 1

原创 【VUE环境搭建及成功运行的详细步骤】

VUE环境搭建搭建项目配置VSCODE配置项目network搭建项目https://blog.csdn.net/m0_46698214/article/details/118357180?spm=1001.2014.3001.5502配置VSCODEhttps://blog.csdn.net/m0_46698214/article/details/118364474?spm=1001.2014.3001.5502配置项目networkhttps://blog.csdn.net/weixin_59

2022-05-09 11:26:06 264

原创 【Cannot read properties of undefined (reading ‘***‘) npm install时】

vue项目install502

2022-03-28 11:34:26 2657

原创 【VUE折线图动态加载】

vue折线图及轮播展示tooltip

2022-03-25 17:30:41 1060

原创 【无标题】

C#json字符串取某属性值C#json字符串取某属性值C#json字符串取某属性值 var dataobj = JsonConvert.DeserializeObject<IDictionary<string, object>>(res); var datares = JsonConvert.SerializeObject(dataobj["data"]); //json转dataTabl

2022-02-18 17:28:23 74

转载 计算机网络

## 计算机网络摘自360问答计算机网络分层网络分为七大层:物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport layer),会话层(Session layer),表示层(Persentation layer),应用层(Application layer)。作用:物理层(Physical layer): 要传递信息就要利用一些物理媒介,如双绞线、同轴电缆等。但具体的物理媒介并不在OSI的七层模型

2020-05-15 09:52:34 121

空空如也

空空如也

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

TA关注的人

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