zoukankan      html  css  js  c++  java
  • leetcode : Search a 2D Matrix

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

    • Integers in each row are sorted from left to right.
    • The first integer of each row is greater than the last integer of the previous row.

    For example,

    Consider the following matrix:

    [
      [1,   3,  5,  7],
      [10, 11, 16, 20],
      [23, 30, 34, 50]
    ]
    

    Given target = 3, return true.

    tag: 坐标转换 . 二分法 。binary search

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

      

  • 相关阅读:
    C# 获取计算机相关信息
    C# 创建Windows服务demo
    C# 嵌入互操作类型
    使用开源框架Sqlsugar结合mysql开发一个小demo
    C# 实现最小化托盘功能
    面试-PA和XSYX面试小结
    0103-springmvc的基本流程
    0102-aop
    java并发编程-12个原子类
    ej3-0开端
  • 原文地址:https://www.cnblogs.com/superzhaochao/p/6498094.html
Copyright © 2011-2022 走看看