
剑指Offer
文章平均质量分 80
本专栏旨在帮助程序员通过算法与数据结构的技术面试,进入心仪的公司。本专栏专注于剑指Offer每一题深刻的解析,给你提供更好的题解以及需要掌握的知识点,能够帮助你开展剑指 Offer 刷题的旅程,祝你刷题愉快,取得好成绩!
不会喷火的小火龙
大学本科在读,热爱技术,做一些自己喜欢的知识分享~
展开
-
剑指Offer 18. 删除链表的节点
通过这种递归的方式,我们可以实现对链表的删除操作,每次处理一个节点,并连接剩余的链表。递归会不断地处理链表中的每个节点,直到链表末尾为止。在解决链表相关的问题时,递归是一种常见的解决方法。在本题中,通过观察题目要求,我们需要删除链表中与给定值相等的节点。删除链表中所有与该值相等的节点,并返回删除节点后的新链表。这段代码是一个删除链表节点的方法,根据给定的值。原创 2023-08-27 13:57:38 · 130 阅读 · 0 评论 -
剑指offer35 复杂链表的复制
在复制链表的过程中,我们需要处理每个节点的random指针。random指针指向链表中的任意节点或者null。原创 2023-08-23 21:23:24 · 107 阅读 · 0 评论 -
剑指Offer 24. 反转链表
通过使用双指针方法,我们可以在不使用递归的情况下,通过修改指针的指向来实现链表的翻转。这种方法具有迭代的特点,适用于处理大型链表和节省内存的情况。原创 2023-08-08 10:33:30 · 174 阅读 · 10 评论 -
剑指Offer06. 从尾到头打印链表
这段代码的功能是将给定链表进行反转,并将反转后的节点值存入一个数组中返回。原创 2023-08-07 15:17:15 · 128 阅读 · 0 评论 -
剑指Offer 67. 把字符串转换成整数
如果是数字,我们通过将字符减去字符’0’得到对应的数字值。接下来,我们进入转换数字部分的循环。如果有正负号,我们将。方法中,我们首先进行了一些初始化操作。然后,我们通过一个循环来去除字符串开头的空格,将。,则说明转换后的整数会超出范围,这时我们根据。位置上的字符是否为正号或负号,并根据情况将。然后,我们进行整数溢出的判断。变量以考虑正负号,并返回转换后的整数。如果转换的数字没有超出范围,我们将。变量来追踪当前处理的字符位置,或长度为0,我们直接返回0。最后,我们将最终的结果乘以。变量来累积转换的数字。原创 2023-08-06 10:23:11 · 207 阅读 · 0 评论 -
剑指Offer 20.表示数值的字符串
如果当前位置小于字符串长度且当前字符是小数点(‘.’),则将 currentIndex 增加1,并调用 scanUnsignedInteger(s) 方法判断小数部分。如果当前位置小于字符串长度且当前字符是指数符号(‘e’ 或 ‘E’),则将 currentIndex 增加1,并调用 scanInteger(s) 方法判断指数部分。该方法会检查当前位置是否为正号或负号,如果是则将 currentIndex 增加1,并调用 scanUnsignedInteger(s) 方法判断无符号整数部分。原创 2023-08-05 22:01:46 · 240 阅读 · 0 评论 -
剑指Offer 58.左旋转字符串
如果需要频繁修改字符串内容或进行大量字符串拼接操作,应该使用StringBuilder以获得更好的性能。StringBuilder和String是Java中用于处理字符串的两个不同的类。第二个循环从索引0到索引k-1遍历原始字符串s的字符。在每次迭代中,将当前索引i处的字符b追加到result中。在每次迭代中,将当前索引i处的字符c追加到result中。这里使用同余运算的原因是为了实现循环遍历字符串的效果,即当。超过字符串长度时,重新回到字符串的开头继续取字符。超过字符串长度时,会从字符串的开头重新开始。原创 2023-08-04 23:29:46 · 240 阅读 · 0 评论 -
剑指Offer 05.替换空格
由于 String 类型是不可变的,因此在对 String 对象进行拼接、截取、替换等操作时,会创建新的 String 对象,而原来的 String 对象不会被修改。在 Java 中,字符串常量池是一种字符串缓存机制,它可以缓存字符串常量,避免重复创建相同的字符串对象,从而减少内存的占用。在 Java 中,String 类型是不可变的,也就是说,一个 String 对象一旦被创建,它的值就不能被修改。其中,第一个参数是需要替换的子字符串的正则表达式,第二个参数是替换后的字符串。替换字符串的两种方法。原创 2023-08-03 17:00:04 · 180 阅读 · 0 评论