题解 | #在行列都排好序的矩阵中找指定的数#

在行列都排好序的矩阵中找指定的数

http://www.nowcoder.com/practice/b929be9dbbaa489a91afa3fec195c228

思路:

  1. 初始化,从 (0, M-1) 位置上开始遍历
  2. 如果 K 小于 当前位置上的值,在当前 的左部分进行查找
  3. 如果 K 大于 当前位置上的值,在当前 的下部分进行查找
  4. 如果当前位置已经 越界,则返回 No,证明当前矩阵中没有该 K

解释:

  1. 因为 每行 的数据是 从小到大 排列的,所以,如果当前位置上的值 大于 K 值,那么肯定往 当前行 的左部分进行查找
  2. 因为 每列 的数据是 从小到大 排列的,所以,如果当前位置上的值 小于 K 值,那么肯定往 当前列 的下部分进行查找
  3. 按照上述的查找方式,最坏情况下 也就遍历了 NM 列,时间复杂度为 O(N+M)O(N+M)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String[] NMK = scan.nextLine().split(" ");
        int N = Integer.valueOf(NMK[0].trim());
        int M = Integer.valueOf(NMK[1].trim());
        int K = Integer.valueOf(NMK[2].trim());
        int[][] matrix = new int[N][M];
        for (int i = 0; i < N; i++) {
            String[] numsStr = scan.nextLine().split(" ");
            for (int j = 0; j < M; j++) {
                matrix[i][j] = Integer.valueOf(numsStr[j]);
            }
        }
        int cx = 0;
        int cy = M - 1;
        while (cx < N && cy > -1) {
            if (matrix[cx][cy] < K) {
                cx++;
            } else if (matrix[cx][cy] > K) {
                cy--;
            } else {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
        return;
    }
}
全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-27 11:37

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4332次浏览 75人参与
# AI面会问哪些问题? #
27943次浏览 556人参与
# 厦门银行科技岗值不值得投 #
8041次浏览 188人参与
# 你的实习产出是真实的还是包装的? #
20225次浏览 342人参与
# 找AI工作可以去哪些公司? #
9157次浏览 235人参与
# 春招至今,你的战绩如何? #
65408次浏览 583人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15249次浏览 221人参与
# 从事AI岗需要掌握哪些技术栈? #
9002次浏览 307人参与
# 中国电信笔试 #
32013次浏览 292人参与
# 你做过最难的笔试是哪家公司 #
33641次浏览 234人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340840次浏览 2174人参与
# 哪些公司真双非友好? #
69613次浏览 289人参与
# 阿里笔试 #
178639次浏览 1316人参与
# 机械人避雷的岗位/公司 #
62704次浏览 393人参与
# 小马智行求职进展汇总 #
25123次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14677次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22092次浏览 280人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26258次浏览 310人参与
# 应届生第一份工资要多少合适 #
20687次浏览 86人参与
# 沪漂/北漂你觉得哪个更苦? #
9890次浏览 193人参与
# 聊聊你的职场新体验 #
336504次浏览 1895人参与
# HR最不可信的一句话是__ #
6295次浏览 114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务