与你相识
博主介绍:
– 本人是普通大学生一枚,每天钻研计算机技能,CSDN主要分享一些技术内容,因我常常去寻找资料,不经常能找到合适的,精品的,全面的内容,导致我花费了大量的时间,所以会将摸索的内容全面细致记录下来。另外,我更多关于管理,生活的思考会在简书中发布,如果你想了解我对生活有哪些反思,探索,以及对管理或为人处世经验的总结,我也欢迎你来找我。
– 目前的学习专注于Go语言,辅学算法,前端领域。也会分享一些校内课程的学习,例如数据结构,计算机组成原理等等,如果你喜欢我的风格,请关注我,我们一起成长。
方法1:暴力法
使用Go语言来写的,前面判断整个数组为空的条件有些多余
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param target int整型
* @param array int整型二维数组
* @return bool布尔型
*/
func Find( target int , array [][]int ) bool {
// write code here
// 判断整个数组是否为空,如果为空,返回false
if (len(array) == 0 || len(array[0]) == 0) {
return false;
}
// 遍历数组
for _,value := range array {
for _,value2 := range value {
if value2 == target {
return true;
}
}
}
return false;
}
方法2:新设想
这种方法很妙
func Find( target int , array [][]int ) bool {
// write code here
// 1. 判断数组为空
if len(array) == 0 || len(array[0]) == 0 {
return false
}
// 2. 获取尾元素下标和行数
var line int = 0
var num int = len(array[0]) - 1
// 3. while循环,条件line < len(array) && num > 0
for line < len(array) && num >= 0 {
// 4. 进行判断,如果target > array[line][num],而array[line][num]又是这个数组第line行最大的,所以这一行的元素都被pass掉了,line ++
if target > array[line][num] {
line = line + 1;
} else if target < array[line][num] { // 5. 如果taget < array[line][num],
num = num - 1;
} else {
return true;
}
}
return false;
}
欢迎评论区讨论,或指出问题。 如果觉得写的不错,欢迎点赞,转发,收藏。