在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二位数组和一个整数,判断数组中是否含有该整数。
C#语言实现:
public static bool yangShiFind(int[,] array, int num) 
        { 
            if (array == null) 
                return false; 
  
            int m = array.Rank; // 行数-1,即最大行标 
            int n = array.GetLength(1); // 列数 
  
            int row = 0; 
            int col = n - 1; 
  
            while (row <= m && col >= 0) 
            { 
                if (num < array[row, col]) 
                    col -= 1; 
                else if (num > array[row, col]) 
                    row += 1; 
                else
                    return true; 
            } 
  
            return false; 
        }
Java语言实现:
public static boolean yangShiFind(int[][] array, int num){ 
        if(array == null) 
            return false; 
          
        int m = array.length; 
        int n = array[0].length; 
          
        int row = 0; 
        int col = n-1; 
          
         while(row < m && col >= 0) 
         { 
             if (num < array[row][col]) 
                 col -= 1; 
             else if (num > array[row][col]) 
                 row += 1; 
             else
                 return true; 
         } 
         return false; 
    }
Python语言实现:
def yang_shi_find(lst, num): 
    if lst is None: 
        return None
  
    m = len(lst) 
    n = len(lst[0]) 
    row = 0
    col = n-1
  
    while row < m and col >=0: 
        if num < lst[row][col]: 
            col -= 1
        elif num > lst[row][col]: 
            row += 1
        else: 
            return (row, col) 
    return None

