目录
- 题目描述
- 思路分析
- AC 代码
- 总结
掘金团队号上线,助你 Offer 临门! 点击 查看详情
一、题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ] 给定 target = 7,返回 true。
给定 target = 3,返回 false。
示例1
输入
7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
返回值
true
说明
存在7,返回true
示例2
输入
3,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
返回值
false
说明
不存在3,返回false
二、思路分析
难度:中等
看到这个题的时候,我们最直观解题思路就是使用暴力法,遍历一遍数组,我们就知道结果了。
三、AC 代码
语言:Go
代码:
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param target int整型
* @param array int整型二维数组
* @return bool布尔型
*/
func Find( target int , array [][]int ) bool {
for i := 0; i < len(array); i++ {
for j := 0; j < len(array[0]); j++ {
if target == array[i][j] {
return true;
}
}
}
return false;
}
通过截图:
四、总结
暴力法的时间复杂度是O(n^2),最坏的情况就是每个元素都遍历一遍,空间复杂度是O(1)。 但是,我们利用到二维数组的行递增和列递增的特性。