道阻且长,行则将至,走慢一点没关系,不停下就好|

Ac_c0mpany丶

园龄:3年7个月粉丝:6关注:3

2023-12-21 11:53阅读: 4评论: 0推荐: 0

[LeetCode Hot 100] LeetCode74. 搜索二维矩阵

题目描述

思路:二维矩阵坐标变换 + 二分查找

二维矩阵坐标变换
只要知道二维数组的的行数m和列数n,二维数组的坐标 (i, j) 可以映射成一维的index = i * n + j;反过来也可以通过一维index反解出二维坐标 i = index / n,j = index % n(n是列数)

把二维数组matrix的元素访问抽象成在一维数组中访问元素,然后直接施展最基本的二分搜索即可。

方法一:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        if (matrix == null || matrix.length == 0) return false;
        int m = matrix.length, n = matrix[0].length;
        int left = 0, right = m * n - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (target == get(matrix, mid)) {
                return true;
            } else if (target < get(matrix, mid)) {
                right = mid - 1;
            } else if (target > get(matrix, mid)) {
                left = mid + 1;
            }
        }
        return false;
    }

    // 通过一维坐标访问二维数组中的元素
    private int get(int[][] matrix, int index) {
        int n = matrix[0].length;
        // 计算坐标
        int i = index / n, j = index % n;
        return matrix[i][j];
    }
}

本文作者:Ac_c0mpany丶

本文链接:https://www.cnblogs.com/keyongkang/p/17918676.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ac_c0mpany丶  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 You Are My Sunshine REOL
You Are My Sunshine - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Traditional

You are my sunshine

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away

The other night, dear,

When I lay sleeping

I dreamed I held you in my arms.

When I awoke, dear,

I was mistaken

So I hung my head and cried.

You are my sunshine,

My only sunshine.

You make me happy

When skies are gray.

You'll never know, dear,

How much I love you.

Please don't take my sunshine away.

You are my sunshine,

My only sunshine

You make me happy

When skies are gray.

You'll never know, dear

How much I love you

Please don't take my sunshine away

Please don't take my sunshine away.

Please don't take my sunshine away.