自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (1)
  • 收藏
  • 关注

原创 计算机网络(1)浏览器生成信息

计算机网络中浏览器根据URL生成请求信息,并通过解析器获得域名对应的IP地址,随后将请求信息委托给协议栈发送出去的流程讲述

2024-09-18 18:10:01 1193

原创 指令:计算机的语言

截至目前,我们有了四种寻址方式。立即数寻址寄存器寻址基址寻址(载入和存储)PC相对寻址(分支和跳转)而现在,我们也可以说一下RISC-V中到底有什么指令了?算术运算指令数据传输指令逻辑运算指令移位操作指令条件分支指令无条件跳转指令指令的设计,源于质朴的需求。截止目前,我们讲述了RISC-V的指令系统及其硬件的实现。

2024-09-16 16:43:48 903

原创 指令:计算机的语言(1)

目标:展示一个遵循硬件简单性的指令系统,展示其硬件表示及与高级语言的关系。

2024-09-14 19:00:48 1145

原创 LeetCode343.整数拆分

这道题目本身需要注意递推公式,要使递推公式和dp数组的含义相融洽。对于笔者而言,题目本身需要思考理解,并最终通过整体的代码去想通。

2023-11-04 11:06:03 82 1

原创 代码随想录算法训练营第十八天

心得:都可以套模板,不算太难。

2023-10-15 18:19:41 73 1

原创 代码随想录算法训练营第十七天(二叉树7)

心得:二叉树终于做完了。

2023-10-12 12:42:30 72

原创 代码随想录算法训练营第十六天(二叉树6)

【代码】代码随想录算法训练营第十六天(二叉树6)

2023-10-10 21:51:40 81 1

原创 代码随想录算法训练营第十五天(二叉树4)

心得:中序遍历和二叉树确实经常出现。

2023-10-09 21:14:44 79 1

原创 代码随想录算法训练营第十四天(二叉树4)

心得:今天有前两天学过的遍历中延申,也有没学过的构建二叉树和二叉搜索树,收获确实很多。另外迭代和递归真的是在不同情况下有不同的便利啊!对各个遍历方式的原理只有掌握清楚,才能对每道题的解法进行准确判断。要注意的是:本题是求最底层最左边的值,不是求最底层左边叶子的值。在本题中我们采用左闭右开区间,统一为这个标准可以避免题目出错。

2023-10-06 18:18:26 52 1

原创 代码随想录算法训练营第十三天(二叉树3)

如果是第二种情况,也可以通过判断树的最左边的深度和最右边的深度是否相等来得出是第二种情况。也就是说,完全二叉树只有两种情况,一种是满二叉树(即只有0度节点和2度节点),一种是最后一层叶子数没有满。迭代是利用一个函数求高度,这个函数中利用栈进行前序遍历,本质上是求以这个节点为根节点的最大深度。确认属性值和返回类型:无返回,输入储存结果的res,储存当前路径的path,当前节点root。二叉树节点的深度:指根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指该节点到叶子节点最长简单路径边的条数。

2023-10-05 20:25:30 61

原创 代码随想录算法训练营第十二天(二叉树)

心得:其实本质上还是通过不同的遍历方式去解题目,因为一刷所以我尽可能把每道题目每个解法过一遍,但时间花的也很长233...写在前面:因为经常使用ArrayDeque来进行栈和队列操作,也会产生一些问题,那就是。如果碰到可能会存放null值的题目。

2023-10-04 21:17:33 61 1

原创 代码随想录算法训练营第十一天(二叉树)

采用标记中间节点的方式,先按顺序加入前中后节点,在中间节点后加null,表示后面的中间节点是要进行操作的。碎碎念:今天状态不太行,一整天都是麻了的状态,还好晚上恢复了,才使得今天进度往前走了一小步。实际上就是前序遍历的方法得出结果后反转一下,只是左右节点加入栈的顺序要调换。《代码随想录》里是记录前一个节点的方式,我觉得我的方法可能更适合我一点。相对复杂,前后序遍历实际上是边遍历边操作,而中序遍历是先遍历后操作。使用栈去书写,但应注意的是,栈是先进后出,故。

2023-10-03 21:21:24 75

原创 代码随想录算法训练营第十天

在本题中,用到了优先队列PriorityQueue,优先队列的底层实现是堆,堆是一个完全二叉树。因为这样排序的时间复杂度是O(N * logN),而利用优先队列的时间复杂度是O(N * logK),我们只需要对map进行遍历,再借由二叉树的logK时间复杂度的排序即可。之后便应考虑,如何保存最大值,这里我们设计一个单调队列,即单调递减的队列,每当后一个值比前一个值大时,删除前面这个值,直到队列为递减时结束。因为小顶堆的堆顶为最小,当进行poll操作时,会弹出最小频次的元素,这样更加方便。

2023-10-02 18:06:44 70 1

原创 代码随想录算法训练营第九天——KMP算法

还是以"aabaabaaf"和"aabaaf"为例,我们记录后一个字符串的next数组,当我们在访问到"aabaa。"aab"前缀"aa""a",后缀"b""ab",故最长相等前后缀为0,next[2] = 0。abababab的最长相等前后缀是"ababab",那么所没有包含的"ab"就是重复字串。"aabaabaaf"和"aabaaf",我们如果要用暴力解法,当进行到"前缀包括"a" "aa" "aab" "aaba" "aabaa","ba""aba",故最长相等前后缀为1,next[3] = 1。

2023-09-29 16:50:43 96 1

原创 代码随想录算法训练营第八天

这道题目的可以用双指针的办法来做,作为一个数组填充类问题,在扩充数组后,采用从后向前填充的方式。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1: 输入:s = "We are happy."心得: 耗时很久,非常痛苦,主要还是倒数第二题。输出:"We%20are%20happy."由于力扣上没有这题,我把题目复制下来。自己的思路比较乱,直接放示例代码。'a'的补码:01100001。'b'的补码:01100010。

2023-09-27 20:03:18 81 1

原创 代码随想录算法训练营第七天

而如果输入的数据为[-1,0,1,2,-1,-4],如果不进行去重处理,就有可能出现两个相同的三元组 [-1, 0,1]。其实这里判不判断left都是可以的,i保持不变的情况下left和right进行遍历,如果left不变,如果要保持为0,right也应不变;而输入的数据如果为[-2,0,0,2,2],那么就意味着left和right有可能重复,我们这时就应对nums[right]和nums[right - 1]进行比较。所以,三元组内部如果有重复元素是没有关系的,如[-1, -1, 2]

2023-09-26 19:02:57 84 1

原创 代码随想录算法训练营第五天

因为查询一个集合中有无元素或一个元素有无出现过优先使用哈希表。主要还是理解哈希表,算法思想没什么的。value存放数值对应的下标。key存放访问过的数值。存放我们访问过的数值。

2023-09-25 20:12:47 82 1

原创 代码随想录算法训练营第四天

当慢指针进入环时,快指针已经在环中,但无论在环中哪个位置,快指针都可以追上慢指针,因为快指针相对于慢指针会多走一步,这能够确保快指针不会越过慢指针。如果慢指针绕环一圈,则快指针一定绕环两圈,而快指针在这个过程中一定已经追上了慢指针,故慢指针不会绕环一圈。快慢指针法:快指针走两步,慢指针走一步,若能够快指针最终能和慢指针指向同一个节点,则有环。快指针走的路程是:x + y + n * (y + z) 【n表示走的圈数】快指针每次走两步,慢指针每次走一步,故快指针路程是慢指针的两倍。

2023-09-25 18:18:11 88 1

原创 代码随想录算法训练营第三天

虚拟头节点方法:设置一个虚拟头节点,next指向head,便于对链表进行统一操作。将头节点赋值给另一个指针,由另一个指针去遍历链表,删除元素。头节点可能也要被移除,要使用while循环来移除。不能对空节点进行操作,因此要检验是否为空。

2023-09-24 19:16:12 76 1

原创 代码随想录算法训练营第二天

我这里取了在判断条件那里加了len == 0,是因为我给len赋值为0,如果代码不满足res >= target时,len自然一直为0;若满足了,则len必不为0。时间复杂度 O(n)

2023-09-23 19:41:57 73 1

原创 代码随想录算法训练营第一天| 704. 二分查找、35.搜索插入位置、34.在排序数组中查找第一个和最后一个元素的位置、27. 移除元素

在二分查找法结束后,left = right + 1,nums[right] < target,nums[left] > target,因此left所在的位置一定是元素要插入的位置。在上述代码中,可以看到如果nums >= target的话right = mid - 1,之后我们对leftReocrd的值进行分情况讨论。如果left < right,则当left = right时,若nums[left]!left指针从左边寻找与target相等的值的地址,右指针从右边找与target不相等的值的地址。

2023-09-22 19:00:07 107 1

原创 Python学习日志——filter函数埃氏筛法

对python filter函数中的埃氏筛法过程进行了梳理

2023-02-08 23:42:56 314

空空如也

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

TA关注的人

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