LeetCode 面试题 10.09. 排序矩阵查找

文章目录

一、题目

  给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。

示例:

现有矩阵 matrix 如下:

\[1, 4, 7, 11, 15\], \[2, 5, 8, 12, 19\], \[3, 6, 9, 16, 22\], \[10, 13, 14, 17, 24\], \[18, 21, 23, 26, 30

]

  给定 target = 5,返回 true

  给定 target = 20,返回 false

  点击此处跳转题目

二、C# 题解

  以右上方的元素为起点,向左下方查找,即可以看成是一个二叉查找树:

csharp 复制代码
public class Solution {
    public bool SearchMatrix(int[][] matrix, int target) {
        if (matrix.Length == 0) return false;
        int row = matrix.Length, col = matrix[0].Length, i = 0, j = col - 1;
        while (i < row && j >= 0) {
            if (target == matrix[i][j]) return true;
            if (target > matrix[i][j]) i++; // 进入右子树
            else j--;                       // 进入左子树
        }
        return false;
    }
}
  • 时间:120 ms,击败 100.00% 使用 C# 的用户
  • 内存:60.17 MB,击败 100.00% 使用 C# 的用户
相关推荐
啊嘞嘞?13 小时前
力扣(岛屿数量)
算法·leetcode
zander25813 小时前
LeetCode 198. 打家劫舍
算法·leetcode·深度优先
吃着火锅x唱着歌14 小时前
LeetCode 648.单词替换
算法·leetcode·职场和发展
一只积极向上的小咸鱼14 小时前
分词器tokenizer
算法·llm
Elsa️74614 小时前
leetcode 14.最长公共前缀
算法·leetcode·职场和发展
不会代码的小猴14 小时前
6. Qt网络编程
开发语言·c++·笔记·qt·算法
Zguigo14 小时前
树的前序|中序|后序遍历【使用栈实现】
数据结构·算法
zhanghaha131415 小时前
HTML系列教程:4_什么是 HTML 元素(零基础超详细讲解)
前端·算法·html
TAN-90°-15 小时前
Deep Learning for Computer Vision——Training CNNs and CNN Architectures
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
0x3F(小茶)15 小时前
Tokenization(分词算法):一切大语言模型的地基
人工智能·算法·语言模型