首页 > 代码库 > CC150 9.6

CC150 9.6

9.6 Given a matrix in which each row and each column is sorted, write a method to find an element in it.

void search(int[][]a, int t)
{
  int m = a.length;
  int n = a[0].length;
  
  // Start from right-up point.
  // if rightUp == t, found
  // if rightUp > t, all column are > t
  // if rightUp < t, all row are < t
  // finally we will reach some node, or cannot find it.
  
  int row = 0;
  int col = n - 1;
  while (row < m && col >= 0)
  {
    if (a[row][col] == t)
    {
      // Found !:)
      return;
    }
    else if (a[row][col] > t)
    {
      col --;
    }
    else
    {
      row ++;
    }
  }
  
  // Not found :(
}


CC150 9.6