Hot 100 | 240. 搜索二维矩阵 II、160.相交链表、206.反转链表

LeetCode Hot 100 代码实现 文章目录1. 两数之和(Easy,哈希)49. 字母异位词分组(Medium,哈希)128. 最长连续序列(Medium,哈希)283. 移动零(Easy,双指针)11. 盛最多水的容器(Medium,贪心(用双指针实现))15. 三数之和(Medium,双指针)42. 接雨水(Hard,贪心(用双指针实现))3. 无重复字符的最长子串(Medium,滑动窗)438. 找到字符串中所有字母异位词(Medium,滑动窗)560. 和为 K 的子数组(Medium,前缀和 + 哈希表的综合应用)239. 滑动窗 阅读详情

一、 240. 搜索二维矩阵 II

1. 解题思路

本题采用二分查找的方法。

(1)对矩阵的每一行进行二分查找,首先定义出左边界和右边界的变量,然后计算出中间元素的下标索引,将中间元素与target元素值进行比对。

(2)如果中间元素比target大,那么需要在中间元素的左边区间进行二次二分查找,也就是将右边界的下标更改为mid-1;如果中间元素比target小,那么需要在中间元素的右边区间进行二次二分查找,也就是将左边界的下标更改为mid+1;如果中间元素等于target,查找到了目标值,返回true。

(3)如果遍历完所有元素都没有返回true,那么直接返回false。

2. 代码实现

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        for row in range(len(matrix)):
            left, right = 0, len(matrix[0])-1
            while left <= right:
                mid = left +(right-left)//2
                if matrix[row][mid]==target:
                    return True
                elif matrix[row][mid] > target:
                    right = mid- 1
                else:
                    left =mid+1
        return False

二、160.相交链表

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

1. 解题思路

(1)定义两个指针A和B分别用于遍历链表headA和链表headB,假设链表headA有a个节点,链表headB有b个节点,公共节点尾部有c个节点。

(2)判断链表是否相交的关键点:用指针A先去遍历链表headA后再去遍历链表headB,但只需要走到到公共节点处,此时A走了a+(b-c)步;用指针B先去遍历链表headB后再去遍历链表headA,但只需要走到到公共节点处,此时B走了b+(a-c)步。此时,a+(b-c) = b+(a-c)时,说明A、B指针重合,链表相交。

(3)相交也存在两种情况:一是A、B指针同时走到公共节点,二是A、B指针不相交,指向NULL,所以只需要返回指针A即可。

2. 代码实现

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode)->Optional[ListNode]:
        A = headA
        B = headB
        while A!=B:
            A = A.next if A else headB
            B = B.next if B else headA
        return A

三、206.反转链表

1. 解题思路

(1)定义一个pre指针指向head前的None,定义一个cur指针指向头节点head,表示当前遍历的节点。

(2)只要cur指针存在,就一直进行反转循环:首先定义一个临时指针next用于存放cur.next的值,然后将cur.next指向pre,完成方向反转;接下来为了进入下一次反转,将pre移动到cur,将cur移动到next。

(3)最后,pre会成为反转后的头节点,返回pre即可。

2. 代码实现

class ListNode:
    def __init__(self, val = 0, next = None):
        self.val = val
        self.next = None
class Solution:
    def reverseList(self, head: Optional[ListNode])->Optional[ListNode]:
        pre, cur = None, head
        while cur:
            next = cur.next
            cur.next = pre
            pre = cur
            cur = next
        return pre

LeetCode HOT 100 一、链表(共11题)(m i d d l e \color{orange}{middle}middle 题,暂时跳过)二、二叉树(共14题,含2道 h a r d \color{red}{hard}hard 题)(h a r d \color{red}{hard}hard 题,暂时跳过)(h a r d \color{red}{hard}hard 题,暂时跳过)三、DFS/BFS(共6题,含3道 h a r d \color{red}{hard}hard 题) 阅读详情

相关推荐

RK3576开发板ROS2部署实战:从Buildroot配置到Hello World Demo

本文详细介绍了在RK3576开发板上部署ROS2的完整实战流程。从Buildroot工程配置、集成ROS2依赖,到搭建Docker交叉编译环境、处理编译难题,最终完成系统镜像打包并在板端成功运行Talker-Listener Demo。该指南旨在帮助开发者深入理解嵌入式机器人系统的构建链,实现从底层到应用的完全掌控。

mac99的博客 1156

LeetCode 热题 HOT 100 题解(仅记录解题思路)

由于数组中只有一个元素出现一次,其余元素都出现两次,因此用集合中的元素之和的两倍减去数组中的元素之和,剩下的数就是数组中只出现一次的数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字。指针p1在头结点处,指针p2在头结点的next处,然后p1每次移动1格,p2则走2步,若在其中一个进入null之前两者指向同一结点,则代表有环。使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。

a131529的博客 1万+

手把手教你搞定EMC EFT测试:从电源线到信号线的完整整改实战(附常见失败原因)

本文详细解析了EMC EFT测试中的常见问题及整改措施,从电源线到信号线的完整实战方案。通过四步定位法和成本最优整改策略,帮助工程师有效应对电快速脉冲群干扰,提升产品通过率并降低成本。

weixin_30920597的博客 498

Leetcode HOT 100 题目总结(已完结)

文章目录前引题目博客链接Easy No.1 - No.21 前引 这段时间感觉动态规划已经做伤了 就是真的没什么动力再做下去了 后面没做的也都是难的不行的dp题目了 想着还是要做的 这段时间换点口味 把力扣HOT 100题给全做了 写个总结 题目博客链接 Easy No.1 - No.21 461. 汉明距离 617. 合并二叉树 104. 二叉树的最大深度 206. 反转链表 169. 多数元素 21. 合并两个有序链表 ...

Love 6's Private Blog 1万+

[南大ICS]PA1 - 开天辟地的篇章: 最简单的计算机

task PA1.1: 实现单步执行, 打印寄存器状态, 扫描内存 task PA1.2: 实现算术表达式求值 task PA1.3: 实现所有要求, 提交完整的实验报告

qq_42474104的博客 1570

Android16 自定义HAL层适配一些VINTF和SELINUX问题修改

在RK里面一般权限矩阵在/rockchip/common/manifests/目录,我这版Android16的代码比较特殊,这里重点修改/device/rockchip/rockchip_generic/manifests/frameworks_compatibility_matrix.xml这个文件,不同的版本注册方式不同,在。hal_ruip_default.te,hal_ruip.te,attributes文件。拓展策略的方式添加,但是在Android16里面发现用不了。发现HAL层服务注册成功了。

tzj1058756809的博客 242

leetcode HOT100总结

本人菜鸡一枚,历时两个月时间把HOT100题做完(Ctrl C-V)了,做完之后还是感觉到很虚,很多中等题还是不会做,于是乎花几天时间把这100题给总结一下。一方面,对自己的知识梳理;另一方面,便于后续回顾。(完成度99,是因为有一道题目收费,没有做!哈哈哈!)以下所有题目都是用Python3实现的。 下面是对这些题目按照算法进行分类整体,主要包括排序、哈希表、递归\回溯、链表、双指针、动态规划、二分查找、贪心、树、深度优先搜索、广度优先搜索等。 在整理之前,先学习一下Python的基本数据类型有哪些,请

qq_36561737的博客 4746

探索CompletableFuture:高效异步编程的利器

随着现代软件系统的复杂性和用户需求的多样化,异步编程成为了提升系统性能和响应速度的重要手段。在Java领域,CompletableFuture作为Java 8引入的新特性,提供了强大的异步编程能力,极大地简化了多线程和并发任务的处理。本文将深入探讨CompletableFuture的基本功能和使用方法,介绍如何利用其提升程序的并发性能和代码的可维护性。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

Hot 100总结【leetcode】

leetcode hot100总结

weixin_44911248的博客 6640

单片机原理及应用知识点汇总(一)

在键闭合稳定时,读取键的状态,并且必须判别;、串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低。、并行通信的优点是传送速度高,缺点是所需传送线较多,远距离通信不方便。、串行通信中,为使设备同步工作,需要通信双方有两个共同的要求,一是。系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。、简述在使用普通按键的时候,为什么要进行去抖动处理,如何处理。、在异步通信的帧格式中,数据位是低位在前高位在后的排列方式。、异步通信中,波特率是指每秒传送二进制代码的位数,单位是。

T19900的博客 696

YOLO-World:从入门到实战的多模态目标检测全指南

想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。

know_F0727的博客 204

力扣爆刷第87天之hot100五连刷21-25

思路:从横向递增纵向递增的矩阵中搜索target,利用顺序的特性,从矩阵的右上角进行搜索,如果相等就返回,如果大于向下进行搜索,如果小于向左进行搜索,存在的话自然可以找到,不存在的话会一直搜索到边界才会停止,也就是当前算法还有改进的空间,可以采取早停措施。题目链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?

qq_43511039的博客 523

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HOT 100(导航)【LeetCode】

HOT 100(导航)【LeetCode】

小心星的博客 858

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HOT100 两周速成

本文总结了LeetCode HOT100题目的高效刷题策略和核心解题思路。主要内容包括: 刷题计划:两周速成方案,第一周每天10题,第二周每天5题,按模块顺序练习 解题技巧:推荐可视化讲解视频,建议先理解算法再动手实现,注重边界条件处理 高频题型解析: 哈希:两数之和、字母异位词分组、最长连续序列 双指针:移动零、盛水容器、三数之和 滑动窗口:无重复子串、字母异位词 链表:反转、环检测、合并排序 二叉树:遍历、翻转、路径和 回溯:全排列、子集、组合 算法要点:强调递归+回溯、双指针、哈希优化等核心技巧,提供

ZZZmy555的博客 458

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Leetcode hot100 Java刷题(一)

在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。所有当前右端点, 符合条件的子数组 有 min(minI,maxI)−i0个。使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。i0表示 离当前右端点最近 的 不在 [minK,maxK]范围的 位置。上面这个解法不符合要求,用了除法,并且空间复杂度不是O(1)

开心星人的博客 1179

Hot 100 Rec

fromand。

ailesanlesanleaile 654

LeetCode Hot100题解

给定一个整数数组 和一个整数目标值 ,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例 1: 示例 2: 示例 3: 49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。示例 1: 示例 2: 示例 3: 128. 最长连续序列 给定一个未排序的整数数组 ,找出数字连续的

weixin_51303841的博客 1061

力扣 (LeetCode) LeetCode HOT 100

LeetCode-HOT-100力扣 (LeetCode) ????LeetCode 热题 HOT 100 ⚡ ???? 如果你有问题https://webvueblog.github.io/LeetCode-HOT-100/1. 两数之和2. 两数相加3. 无重复字符的最长子串4. 寻找两个正序数组的中位数5. 最长回文子串10. 正则表达式匹配11. 盛最多水的容器15. 三数之和17. 电话号码的字母...

程序员哆啦A梦,蓝胖子 2513

Hot100方法及易错点总结1

记录Leecodehot100易错点及难点

m0_56640148的博客 765

leetcode热题HOT100汇总——java题解已完结撒花

为了学习本文捋顺leetcode热题HOT100的汇总 方便自己秋招刷题 仅作刷题笔记使用 感兴趣的小伙伴点一个赞吧。

qq_41810415的博客 9407

LeetCode HOT 100刷题总结

文章目录1 哈希1.1 1-1.两数之和🟢1.2 2-49.字母异位词分组🟡1.3 3-128.最长连续序列🟡2 双指针2.1 4-283.移动零🟢2.2 6-15.三数之和🟡2.3 7-11.盛最多水的容器🟡2.4 8-42.接雨水🔴3 滑动窗口3.1 9-3.无重复字符的最长子串🟡3.2 10-438.找到字符串中所有字母异位词🟡4 子串4.1 11-560.和为 K 的子数组🟡5 矩阵5.1 73.矩阵置零🟡6 链表6.1 23-160.相交链表🟢6.2 24-206.反转链表🟢🔥6.3 92.反转链

夏日 の blog 1915

【求职季】LeetCode Hot 100 渐进式扫盲手册(Python版)

[求职季]📘 LeetCode Hot 100 渐进式扫盲手册(Python版) 祝你我求职顺利!

m0_54524462的博客 528

Leetcode hot100题 个人整理版

2.两数相加 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 3. 无重复字符的最长子串 4. 寻找两个正序数组的中位数 给定两个大小分别为 mmm 和 nnn 的正序(从小到大)数组 nums1nums1nums1 和 nums2nums2nums2。请你找出并返回这两个正序数组的中位数.算法的时间复杂度应该为 O(log

zombotany的博客 3761

Leetcode Hot 100目录

2. 两数相加(用额外和空间,不用额外空间如何做)

Dou 893

Leetcode hot 100刷题感悟

Leetcode hot 100刷题经验

qq_66158124的博客 974
上一篇: HOT 100 | 73.矩阵置零、54.螺旋矩阵、48.旋转图像
下一篇: 【HOT100-二分查找】34. 在排序数组中查找元素的第一个和最后一个位置
Accept17
博客等级 码龄4年 479粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值