当前位置: 首页 > news >正文

LeetCode 解题思路 11(Hot 100)

在这里插入图片描述

解题思路:

  1. 若相等: 直接返回 true。
  2. 若当前元素大于目标值: 由于列递增,当前列下方所有元素均大于目标值,故排除该列(向左移动)。
  3. 若当前元素小于目标值: 由于行递增,当前行左侧所有元素均小于目标值,故排除该行(向下移动)。

Java代码:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
            return false;
        }
        
        int m = matrix.length;
        int n = matrix[0].length;
        int i = 0;
        int j = n - 1; 
        
        while (i < m && j >= 0) {
            if (matrix[i][j] == target) {
                return true;
            } else if (matrix[i][j] > target) {
                j--; 
            } else {
                i++;
            }
        }
        return false;
    }
}

复杂度分析:

  • 时间复杂度: O(m + n)。
  • 空间复杂度: O(1)。

在这里插入图片描述

解题思路:

  1. 双指针: 两个链表头部同时出发,每次移动一步。当一个链表遍历完后,将其指针重置到另一个链表头部继续遍历。
  2. 节点相交: 由于两个链表长度差异会在重置过程中被抵消,最终两个指针必定在相交节点相遇(若存在相交节点)。

Java代码:

public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) return null;
    
        ListNode p1 = headA;
        ListNode p2 = headB;
        
        while (p1 != p2) {
            p1 = (p1 == null) ? headB : p1.next;
            p2 = (p2 == null) ? headA : p2.next;
        }
        return p1;
    }
}

复杂度分析:

  • 时间复杂度: O(m + n)。其中 m 和 n 分别为两个链表的长度。最坏情况下,两个指针各遍历完两个链表一次。
  • 空间复杂度: O(1)。仅需常数级的额外空间(两个指针 p1 和 p2)。

相关文章:

  • windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐
  • Reverse DevTools | 逆向调试工具 使用手册
  • 机器学习深度学习基本概念:logistic regression和softmax
  • VScode 中文符号出现黄色方框的解决方法
  • 通用外设驱动模型(四步法)及配置GPIO步骤
  • 云原生系列之本地k8s环境搭建
  • 【pyqt】(十二)文本框
  • 神经网络中梯度计算求和公式求导问题
  • 2025年渗透测试面试题总结-字某某动-安全研究实习生(一面)(题目+回答)
  • BFS(七)662. 二叉树最大宽度 数组下标模拟存储二叉树
  • “深入浅出”系列之杂谈篇:(8)SQL Server 真的比不上 MySQL 吗?
  • 大模型中的剪枝、蒸馏是什么意思?
  • 【mlops】Cube Studio云原生机器学习平台架构解析
  • unity 让两个物体相遇时候刚体互不影响
  • Python计算程序用时方法大全(基础,高精度,装饰器,无侵入式,格式化时间输出)
  • K8s 1.27.1 实战系列(五)Namespace
  • GEFFEN/GF-SPMS8分布式电源强电控制器
  • 【408考研网络】2024考研原题计算机网络知识点总结(共六题)
  • 维度建模维度表技术基础解析(以电商场景为例)
  • linux上将sh脚本文件打包成二进制程序文件
  • 怎么注册个人的网站/成都网站改版优化
  • c 可以做网站嘛/网络服务包括哪些内容
  • 5118网站查询/网络营销swot分析
  • 一般做网站空间大概多少钱/搜索引擎seo如何优化
  • 网站建设项目需求分析/品牌策略的7种类型
  • dedecms部署两个网站/网络营销顾问是做什么的