题目要求O(n + m),即最坏的情况是行一次列一次,所以我们每次行动都需要排除 一行 或者 一列 。如果从 左上角 或 右下角 开始查找的话,会出现两个方向(都是 比它小 的,或者都是 比它大 的),无法排除。因此我们需要从 右上角 或者 左下角 开始查找,这样每一次操作都可以排除 一行 或 一列 。例如,从 右上角 开始查找的话,比 target 大,就找右边的;比 target 小,就找下面的。最终若超出边界的话,就是没有与 target 值相同的元素。 public boolean Find(int target, int[][] array) { int ro...