面试:数组:二维搜索数组

题目

对一个n*n矩阵进行搜索,矩阵有如下特征
1. 每行的是从左到右都是排序的
2. 每行的首数大于尾数


二分查找

  1. A是m*n的矩阵
  2. A[k]=matrix[i][j]
  3. i=k/n
  4. j=k%n

复杂度

O(lg(m*n))


import java.util.*;

public class Solution{
    public boolean searchMatrix(int[][] matrix,int target)
    {
        int m=matrix.length;
        int n=matrix[0].length;
        int low=0;
        int high=m*n-1;
        while(low<high){
            int mid=(low+high)/2;
            if(matrix[mid/n][mid%n] == target){
                return true;
            }
            else if(matrix[mid/n][mid%n]<target)
                low=mid+1;
            else 
                high=mid-1;
        }
        return false;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值