package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param target int整型
 * @param array int整型二维数组
 * @return bool布尔型
 */
func Find(target int, array [][]int) bool {
	// write code here
	// 左上与右下必定为最小值与最大值
	// 左下元素大于它上方的元素,小于它右方的元素,右上元素与之相反
	m := len(array[0])
	n := len(array)
	if n == 0 || m == 0 {
		return false
	}

	// 从最左下角的元素开始往右或往上
	for down, r := n-1, 0; down >= 0 && r < m; {
		if array[down][r] > target {
			down--
		} else if array[down][r] < target {
			r++
		} else {
			return true
		}
	}

	return false
}