zoukankan      html  css  js  c++  java
  • 在行列都排好序的矩阵中找数 【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数,判断K 是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果K为7,返回true;如果K为6,返 回false。 【要求】 时间复杂度为O(N+M),额外空间复杂度为O(1)。

    从对角考虑

     1 package my_basic.class_3;
     2 
     3 /**
     4  * 从对角开始
     5  */
     6 public class Code_09_FindNumInSortedMatrix {
     7     public static boolean isContain(int[][] matrix,int k) {
     8         int endR = matrix.length-1;
     9         int endC = matrix[0].length - 1;
    10         int row = endR;
    11         int column =  0;
    12         while (row > -1 && column <= endC) {
    13             if (matrix[row][column] == k) {
    14                 return true;
    15             }else if (matrix[row][column] > k) {
    16                 row--;
    17             }else {
    18                 column++;
    19             }
    20         }
    21         return false;
    22     }
    23     
    24     public static void main(String[] args) {
    25         int matrix[][]= new int[][] {
    26             { 0, 1, 2, 3, 4, 5, 6 },// 0
    27             { 10, 12, 13, 15, 16, 17, 18 },// 1
    28             { 23, 24, 25, 26, 27, 28, 29 },// 2
    29             { 44, 45, 46, 47, 48, 49, 50 },// 3
    30             { 65, 66, 67, 68, 69, 70, 71 },// 4
    31             { 96, 97, 98, 99, 100, 111, 122 },// 5
    32             { 166, 176, 186, 187, 190, 195, 200 },// 6
    33             { 233, 243, 321, 341, 356, 370, 380 }
    34         };
    35         int k = 233;
    36         System.out.println(isContain(matrix,k));
    37     }
    38 }
  • 相关阅读:
    模拟google分页效果
    真理胜于一切 JAVA模拟表单提交
    springboot @vaule注解失效解决办法
    安装cnpm
    公众号微信支付开发
    vue去掉链接中的#
    springboot集成mongoDB简易使用
    Spring boot中使用aop详解
    Promise 的基础用法
    MySQL的if,case语句使用总结
  • 原文地址:https://www.cnblogs.com/lihuazhu/p/10908643.html
Copyright © 2011-2022 走看看