【力扣hot100】刷题笔记Day8

这篇具有很好参考价值的文章主要介绍了【力扣hot100】刷题笔记Day8。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 到了大章节【链表】了,争取两三天给它搞定!!

160. 相交链表 - 力扣(LeetCode)】

  • 双指针

    • 参考题解,相比于求长度+右对齐再一起出发的方法简洁多了
    • class Solution:
          def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:
              A, B = headA, headB
              while A != B:
                  A = A.next if A else headB  # A跑完就跳到B开始
                  B = B.next if B else headA  # B跑完就跳到A开始
              return A  # 返回重合的节点或者返回空值

 206. 反转链表 - 力扣(LeetCode)

  • 双指针

    • 【力扣hot100】刷题笔记Day8,力扣hot100刷题笔记,leetcode,笔记,算法,职场和发展,数据结构
    • class Solution:
          def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
              pre, cur = None, head
              while cur:
                  temp = cur.next  # 暂存下一个节点
                  cur.next = pre   # 反转指针
                  pre = cur        # pre后移
                  cur = temp       # cur后移
              return pre  # 最后cur是None,pre是最后的结点

234. 回文链表 - 力扣(LeetCode)

  • 快慢指针 + 翻转

    • 参考题解,复用上一题的翻转,注意一下奇偶以及最后要恢复链表
    • class Solution:
          def isPalindrome(self, head: Optional[ListNode]) -> bool:
              # 翻转链表
              def reverse(head):
                  pre, cur = None, head
                  while cur:
                      temp = cur.next
                      cur.next = pre
                      pre = cur
                      cur = temp
                  return pre
              # 快慢指针
              fast = slow = head
              while fast.next and fast.next.next:
                  fast = fast.next.next
                  slow = slow.next
              pre = slow # 存个pre断点方便恢复
              slow = slow.next  # 后半截从中点的下一个节点开始
              left = head
              right = last = reverse(slow)  # 存个last最后节点方便恢复
              while right:  # 奇数right短一截,偶数right和left一样长
                  if left.val != right.val:
                      return False
                  left = left.next
                  right = right.next
              # 恢复链表
              pre.next = reverse(last)
              return True

后言

  • 在工位刷题效率杠杠的!有双屏无论是编辑博文还是看题解都很舒服~ 链表真好玩呀(文章来源地址https://www.toymoban.com/news/detail-832693.html

到了这里,关于【力扣hot100】刷题笔记Day8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode刷题——55. 跳跃游戏(HOT100)

    ✊✊✊🌈大家好!本篇文章将较详细介绍贪心相关的题目 55. 跳跃游戏 ,提供两种解法。代码语言为: C++代码 😇。 🔒1、题目: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最

    2024年01月20日
    浏览(48)
  • 刷题笔记 day8

    1004 最大连续1的个数 III         这道题要求将原数组中的0翻转成1,求出最大元素全是1的子数组长度,看这道题第一感觉还要将里面的0变成1,感觉这道题解决起来很麻烦,但是我们可以转变思路, 找出其最大子数组,使得子数组里面0元素的个数不超过 k,然后求其子数

    2024年02月14日
    浏览(38)
  • LeetCode刷题——394. 字符串解码(HOT100)

    ✊✊✊🌈大家好!本篇文章将较详细介绍栈的题目 394. 字符串解码 ,提供 栈和递归 两种解法。代码语言为: C++代码 😇。 🔒1、题目: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string] ,表示其中方括号内部的 encoded_string 正好重复 k 次。注

    2024年01月19日
    浏览(56)
  • [力扣 Hot100]Day9 找到字符串中所有字母异位词

    给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词指由相同字母重排列形成的字符串(包括相同的字符串)。 出处 跟昨天的思路类似,也是两个指针构成滑动窗口,窗口大小固定为p的长度。将p的字符存到

    2024年01月19日
    浏览(47)
  • [力扣 Hot100]Day29 删除链表的倒数第 N 个结点

    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 出处 两个指针间隔n,一趟遍历解决。

    2024年02月19日
    浏览(44)
  • Leetcode刷题笔记--Hot31-40

    目录 1--颜色分类(75) 2--最小覆盖子串(76) 3--子集(78) 4--单词搜索(79) 5--柱状图中最大的矩形(84) 6--最大矩形(85) 7--二叉树的中序遍历(94) 8--不同的二叉搜索数(96) 9--验证二叉搜索树(96) 10--对称二叉树(101) 主要思路:         快排 主要思路:  主要

    2024年02月10日
    浏览(33)
  • 力扣python刷题day03|LeetCode203、707、206

    题目 题目链接:203:移除链表元素 方法一: 知识点: 设置虚拟头结点 题目 来源:力扣(LeetCode) 提示: 0 = index, val = 1000 请不要使用内置的 LinkedList 库。 调用 get、addAtHead、addAtTail、addAtIndex 和 deleteAtIndex 的次数不超过 2000 。 方法一:单链表法 方法二:双链表法 (有点难

    2024年02月16日
    浏览(43)
  • 力扣python刷题day04|LeetCode24、19、160、142

    题目 来源:24:两两交换链表中的节点 建议使用虚拟头结点,这样会方便很多,要不然每次针对头结点(没有前一个指针指向头结点),还要单独处理。 接下来就是交换相邻两个元素了,此时一定要画图,不画图,操作多个指针很容易乱,而且要操作的先后顺序 方法: 题目

    2024年02月16日
    浏览(37)
  • Java算法_ 杨辉三角(LeetCode_Hot100)

    题目描述:题目描述:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码

    2024年02月13日
    浏览(51)
  • Java算法_ 验证二叉搜索树(LeetCode_Hot100)

    题目描述: 给你一个二叉树的根节点 ,判断其是否是一个有效的二叉搜索树。root 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 获得更多?算法思路:代码文

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包