目录
矩阵元素查找
访问量:1305

一、简介

已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的。设计查找算法返回所查找元素的二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异


二、实现

func findElement(mat [][]int, n int, m int, x int) []int {
   // write code here
   // 基于m 二分查找,确定行
   for i:= 0; i < n ; i++{
      if mat[i][m -1] < x {
         // 最后一个都比m小,肯定不在这一行
         continue
      } else if mat[i][0] > x {
         return nil
      }

      l := 0
      r := m -1
      for l <= r {
         mid := l + (r-l)/2
         if mat[i][mid] == x {
            return []int{i, mid}
         } else if mat[i][mid] > x {
            r = mid -1
         } else {
            l = mid +1
         }
      }
   }

   return nil
}