第一题
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目来源于此。
分析
对于上面一个二维数组来说,左上角最小,右下角最大,可以使用变形的二分法沿着对角线来查找。
分析草稿
假设一个函数,对比左上角及右下角和目标的大小,若大于右下角或小于左上角,则不在该集合之内。
伪代码
1 | class Solution: |
解法
1 | # -*- coding:utf-8 -*- |