Java中二维数组的length方法
Java中二维数组的length方法
今天遇到一道很简单的算法题
在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
刚开始是这样写的
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
boolean flag = false;
for(int i = 0;i < matrix.length;i++)
{
for(int j = 0; j < matrix.length;j++)
{
if(target == matrix[i][j])
{
flag = true;
}
}
}
return flag;
}
}
自我感觉没问题,点击运行却报出错误
才发现自己竟然不知道二维数组中length方法所表示的含义,这样写如果行列数不一致就通过不了案例
查阅资料总结如下
在一维数组a[ ]中,a.length 方法的意思就是返回这个数组的长度。
比如a[] = {1,2,3,4,5},则a.length = 5
而在二位数组中,如果直接调用b.length方法,返回的则是b数组的行数,
如果是b[0].length方法则返回的是0行所代表的长度。
代码更改如下:
class Solution {
public boolean findNumberIn2DArray(int[][] matrix, int target) {
boolean flag = false;
for(int i = 0;i < matrix.length;i++)
{
for(int j = 0; j < matrix[0].length;j++)
{
if(target == matrix[i][j])
{
flag = true;
}
}
}
return flag;
}
}
问题解决
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zhn&Blog!
评论