只是想知道我的代码有什么问题。隐藏测试显示无效的数组索引返回为“有效”。
这是我的代码:
/**
* Check if the array index is inside the grid
*
* @param x - row
* @param y - column
* @return true if given index is inside the grid; otherwise false
*/
public boolean validIndex(int x, int y)
{
boolean result = false;
for (int i = 0; i < arr.length; i++)
{
for (int j = 0; j < arr.length; j++)
{
if (i >= 0 && i < arr.length && j >= 0 && j < arr.length)
{
result = true;
}
}
}
return result;
}
答案 0 :(得分:3)
您的代码忽略输入x
和y
索引并始终返回true(除非输入数组有0行)。
检查传递的索引x
和y
,而不是使用这些循环。
您只需要:
if (x >= 0 && x < arr.length && y >= 0 && y < arr[x].length)
result = true;