本文主要是介绍[LeetCode]74. Search a 2D Matrix,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意: 从一个二维数组中找出是否存在某一个值,数组特征,每一行从左到右依次增大并且下一行的第一个数字大于上一行的最后一个数字
思路: 不知道直接暴力能不能过,不过可以想到,利用数组的特征,将目标数字与每一行末尾的数字进行比较能够找到目标数字所在的行,然后在遍历该行即可,时间复杂度O(m+n)
代码:
public boolean searchMatrix(int[][] matrix, int target) {if(matrix.length == 0){return false;}int row = -1, hei = matrix.length, wid = matrix[0].length;for(int i = 0; i < hei; ++i){if(target <= matrix[i][wid - 1]){row = i;break;}}if(row == -1){return false;}for(int i = 0; i < wid; ++i){if(target == matrix[row][i]){return true;}}return false;}
这篇关于[LeetCode]74. Search a 2D Matrix的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!