java数组maxSpan

java数组maxSpan,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,谁能解释一下这个问题和逻辑吗。我无法理解: 考虑一个图形中某个值的最左边和最右边的外观 大堆我们可以说“跨度”是两个元素之间的元素数 包括两个。单个值的范围为1。返回最大值 在给定数组中找到span。(效率不是优先事项。) 如果您在上面的链接中引用托管在GitHub上的代码。 正如您在文档中所读到的,maxSpan函数返回一个数的两次出现之间的(max)个元素数 例如: 最大跨度([1,2,1,1,3])→ 4 数组中的第一个“1”和最后一个“1”元素生成的maxSpan值为4。public

谁能解释一下这个问题和逻辑吗。我无法理解:

考虑一个图形中某个值的最左边和最右边的外观 大堆我们可以说“跨度”是两个元素之间的元素数 包括两个。单个值的范围为1。返回最大值 在给定数组中找到span。(效率不是优先事项。)

如果您在上面的链接中引用托管在GitHub上的代码。 正如您在文档中所读到的,maxSpan函数返回一个数的两次出现之间的(max)个元素数
例如:
最大跨度([1,2,1,1,3])→ 4
数组中的第一个“1”和最后一个“1”元素生成的maxSpan值为4。

public int maxSpan(int[]arr){
 public int maxSpan(int[] arr) {

        int n = arr.length;

        if(n == 0)
            return 0;
        if(n == 1)
            return 1;

        int loIdx = 0;
        int hiIdx = 0;

        for (int i = 0, j=n-1; i < n && j>=0; i++, j--) {
            if(arr[0]== arr[i])
                loIdx = i;
            if(arr[n-1] == arr[j])
                hiIdx = j;
        }
        return Math.max(loIdx+1, n-hiIdx);
}
int n=阵列长度; 如果(n==0) 返回0; 如果(n==1) 返回1; int-x=0; int-hiIdx=0; 对于(inti=0,j=n-1;i=0;i++,j--){ if(arr[0]==arr[i]) x=i; 如果(arr[n-1]==arr[j]) hiIdx=j; } 返回数学最大值(LODIX+1,n-hiIdx); }
有什么需要解释的吗?我看不到问题。如果你在寻找谜语或其他东西的答案,你应该将其发布在Puzzling.SE上。我猜maxSpan只是返回数组的长度?这并不是说Google或StackOverflow已经找到了你问题的答案。。。有人能帮我解决这个问题吗?我是新手,你能详细说明一下你在这里做了什么吗。仅倾销代码不被视为有效答案
 public int maxSpan(int[] arr) {

        int n = arr.length;

        if(n == 0)
            return 0;
        if(n == 1)
            return 1;

        int loIdx = 0;
        int hiIdx = 0;

        for (int i = 0, j=n-1; i < n && j>=0; i++, j--) {
            if(arr[0]== arr[i])
                loIdx = i;
            if(arr[n-1] == arr[j])
                hiIdx = j;
        }
        return Math.max(loIdx+1, n-hiIdx);
}