在写Java题目时发现报错:
后发现是程序这段报错:
int l=.arr.length;
int[] a=new int[l];
a[0]=1;
在 a[0]=1;处报错是因为存在 l=0,也就是arr数组为空的情况。
arr数组为空,那new int[0] 创建的是一个空数组,空数组也就不存在下标为0的元素,无法访问a[0]了,所以在a[0]=1;处报错,提示为数组越界。
解决办法:
在前面加一个 if 条件判断数组是否为空,为空直接输出。
int l=.arr.length;
if(l==0){
return new int[0];
}
int[] a=new int[l];
a[0]=1;
问题就解决了。
此问题在试图用数组解决 leetcode 1331.数组序号转换 题碰到