自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [142] Linked List Cycle II 环形链表II

[C++]龟兔赛跑,在一个环形跑道上,如果两个人(或动物)以不同的速度同向赛跑,跑得快的人最终必然会从后面“套圈”追上跑得慢的人。

2025-12-21 15:47:44 341

原创 [160] Intersection of Two Linked Lists 链表相交

[C++] 真正的相交,必须是物理上(内存地址上)的汇合,而不是节点值恰好相等。

2025-12-17 16:59:45 336

原创 [19] Remove Nth Node From End of List 删除链表的倒数第N个节点

[C++] 使用快慢指针一趟扫描,找到待删除节点的前驱节点。

2025-12-15 21:16:46 160

原创 [24] Swap Nodes in Pairs 两两交换链表中的节点

[C++]通过引入虚拟头节点来统一操作,并用迭代的方式完成交换

2025-12-06 16:42:00 223

原创 [206] Reverse Linked List 反转链表

[C++]pre指向当前节点前一个节点。在反转过程中,它代表了已经反转好的那部分链表的头。当 cur 变为 nullptr 时,也就是循环结束,pre 正好指向新链表的头节点。

2025-11-27 11:55:38 216

原创 [707] Design Linked List 设计链表

[C++]时间复杂度衡量的是,当链表长度 N 增长时,函数执行的操作次数会如何增长。

2025-11-24 16:21:35 806

原创 [203] Remove Linked List Elements 移除链表元素

[C++]虚拟头节点法

2025-11-23 11:52:10 1031

原创 [59] Spiral Matrix II 螺旋矩阵II

[C++]通过维护 top, bottom, left, right 四个指针来模拟螺旋收缩的过程,每条边遍历后立即收缩边界并检查是否需要 break,循环退出条件是两个边界交错,一旦交错说明已经填充完所有格子,而重叠时(=)代表螺旋已经收缩到最后一行或者最后一列。

2025-11-23 11:49:46 827

原创 [209] Minimum Size Subarray Sum 长度最小的子数组

[C++]两个单调性 :题干数组元素都是正数。固定l,h右移,sum单调递增;固定h,l右移,sum单调递减。

2025-11-19 18:25:02 940

原创 [977] Squares of a Sorted Array 有序数组的平方

[C++]一个有序数组中,其元素的平方最大值一定产生于数组的两端。所以不直接生成结果数组,而是反向填充,每次都只找到待处理元素的最大值。

2025-11-18 19:45:35 626

原创 [27] Remove Element 移除元素

[C++] 快指针找萝卜,慢指针找萝卜坑

2025-11-17 16:46:53 825

原创 [704] Binary Search 二分查找

[C++] 适用于“无重复元素的有序数组”或“不需要查找特定位置”的场景,本质上是平衡二叉搜索树(BST)

2025-11-16 21:47:19 231

原创 【图灵完备(Turing Complete)】四、处理器架构2

我们的新架构LEG要采用一种新的条件判断命令,和前面的新ALU一样,它对整条命令的中间两个参数进行比较,这两个参数可以被解释为是地址,或者是立即数,对它们进行比较后得出一个真或假的判断结果,然后根据这个结果来决定是否进行跳转,如果要跳转的话,最后一个参数就是跳转指针,指向程序模块中的某个地址。这里的立即数概念和原始图灵机中的完全一致,不过在那时,受限于指令宽度,我们能获取的立即数的最大值也只有十进制63,而到了这里,我们的完整命令可以有4个字节,那么随之而来的好处就是可取数值更宽了。

2024-12-19 23:11:22 2253

原创 【图灵完备(Turing Complete)】 三、处理器架构

其实和上一关没有本质区别,只是把关卡左上角的指令输入元件替换成了程序模块,可以看做是一个ROM,内部有一大堆的寄存器阵列,且已经固化好了程序。从本阶段开始,我们的电路再也不能随意“私拉乱建”了,而是要认真考虑规划,否则的话,就算过了当前关卡,也很难保证在后续关卡中电路还能正常运行,这是本阶段必须重点考虑的方面。这里对指令字节的最高2bit所能产生的4种状态进行了解释,分别对应了4种模式,显然是要实现一个24译码器,那我们可以直接把38译码器拿过来用,不用重新搭了。接着把数据总线挂接好。

2024-12-19 23:00:34 2548

原创 【图灵完备(Turing Complete)】二、算术运算/存储器

而第二个输入就是待写入的数据。说白了,这个元件有两个输入,第一个输入就是“使能”引脚,第二个输入才是“数据”引脚。本关之所以叫“小盒子”,是因为它限定了我们的布线空间,真的就像在有限硅晶圆上搭建电路一样,不再让我们“铺张浪费”了,而任务是要在这个有限空间内,搭建4个字节的寄存器。本关有两个输出,一个作为和位,一个作为进位位。在前面的两关我们体验过根据列式子来搭电路的妙招之后,在本关也是一样,先把对应的真值表画出来,本关开始接触的输入值不再是1bit的0或1信号了,而是一个字节信号,有8个bit。

2024-12-19 22:50:37 2786

原创 【图灵完备(Turing Complete)】一、基础逻辑电路

和之前一样,拖出导线连接输入端,再拖一根线连到输出端,然后仔细阅读底部中文提示,在灰色的小圆点上点出正确的颜色即可通关。至此,我们拥有了:与门、或门、非门,以及与非门、或非门。由于非门的存在,它永远输出1,所以当或门的另一个输入无论处于什么状态,总体电路的输出永远都是1。在上一轮关卡中得到了 与非门,那么这次再加一个 非门,负负得正,就得到了一个 与门。三路或门,这个没啥好说的,在普通两路或门的基础上再加一个或门即组成一个三路或门。同或门XNOR,仔细看看真值表,会发现实际上就是把异或门的输出取个反。

2024-12-13 22:42:45 1298

空空如也

空空如也

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

TA关注的人

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