BM18. 二维数组中的查找
描述
给定 target = 7,返回 true。
示例1
输入:
7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
输出:
true
说明:
存在7,返回true示例2
输入:
1,[[2]]
输出:
false
示例3
输入:
3,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
输出:
false
说明:
不存在3,返回falseRust 解法, 执行用时: 2ms, 内存消耗: 408KB, 提交时间: 2021-07-27
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ pub fn Find(&self, target: i32, array: Vec<Vec<i32>>) -> bool { // write code here array.iter().any(|arr| arr.iter().any(|item| *item == target)) } }
Go 解法, 执行用时: 3ms, 内存消耗: 1340KB, 提交时间: 2021-07-13
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ func Find( target int , array [][]int ) bool { // write code here line := len(array) if(line == 0) { return false } lens := len(array[0])-1 // if(line == 0|| lens == 1) { // return false // } // if(array[0][0] > target || array[line-1][lens] <target) { // return false // } m :=0 for { if(m>=line ||lens<0 ){ break } if(array[m][lens] < target) { m++ }else if(array[m][lens] > target) { lens-- }else { return true } } return false }
Go 解法, 执行用时: 3ms, 内存消耗: 1372KB, 提交时间: 2021-07-18
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ func Find( target int , array [][]int ) bool { // write code here n, m := 0, len(array[0]) - 1 for n < len(array) && m >= 0 { if array[n][m] != target { if array[n][m] > target { m -- } else { n ++ } }else { return true } } return false }
Go 解法, 执行用时: 3ms, 内存消耗: 1380KB, 提交时间: 2021-07-23
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ func Find( target int , array [][]int ) bool { i, j := 0, len(array[0])-1 for i < len(array) && j >= 0 { if array[i][j] == target { return true } else if array[i][j] > target { j-- } else { i++ } } return false }
Go 解法, 执行用时: 3ms, 内存消耗: 1384KB, 提交时间: 2021-06-14
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ func Find( target int , array [][]int ) bool { // write code here if len(array) == 0 || len(array[0]) == 0 { return false } m, n := len(array), len(array[0]) for i, j := m-1, 0; i >= 0 && j < n; { if array[i][j] == target { return true } else if array[i][j] > target { i-- } else { j++ } } return false }