Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Java数组是否是某个元素的回文_Java_Arrays - Fatal编程技术网

检查Java数组是否是某个元素的回文

检查Java数组是否是某个元素的回文,java,arrays,Java,Arrays,我编写了一个简单的方法来检查数组是否是某个元素的回文。问题是,我没有从这个方法中得到任何输出。一定是出了什么事。代码如下: publicstaticbooleanispalindrome(int[]arr,int start){ 如果(arr.length==0){//空数组是回文数组 返回true; } //从数组的开始到结束循环 对于(int i=开始;i=start;j-=1){ 如果(arr[i]!=arr[j]){ 返回false; } } } 返回true; } 我建议这样做: fo

我编写了一个简单的方法来检查数组是否是某个元素的回文。问题是,我没有从这个方法中得到任何输出。一定是出了什么事。代码如下:

publicstaticbooleanispalindrome(int[]arr,int start){
如果(arr.length==0){//空数组是回文数组
返回true;
}
//从数组的开始到结束循环
对于(int i=开始;i=start;j-=1){
如果(arr[i]!=arr[j]){
返回false;
}
}
}
返回true;
}

我建议这样做:

for(int i=start;i
这没有两个嵌套循环,而是从前面和后面检查同一个数组。

试试这个


public static boolean isPalindrome(int[] arr, int start){
    
    if (arr.length == 0) { //empty array is a palindrome
        return true;
    }

    int end = arr.length - 1;

    while(start <= end){
      if(arr[start] != arr[end]){
        return false;
      }
      start++;
      end--;
    }

    return true;

}


公共静态布尔值isAlindrome(int[]arr,int start){
如果(arr.length==0){//空数组是回文数组
返回true;
}
int end=阵列长度-1;

虽然(start单循环就足以完成此任务,但您只需要循环到将要检查的数组的一半

publicstaticbooleanispalindrome(int[]arr,int start)
{
如果(arr.length==0){//空数组是回文数组
返回true;
}
//从开始到阵列的一半循环
对于(int i=start;i
是的,有一个bug。您不应该嵌套这两个循环,因为这意味着您正在将每个条目
[i]
与每个条目
[j]进行比较
并在出现差异时立即返回false。您只需要一个循环,其中
i
j
都会更新。您将从第一个循环中选择的一个元素与在第二个循环中选择的所有元素进行比较。您可以使用索引i和长度-i在直接循环中进行此操作。在我写此注释时,有三个答案在这里,所有这些都是错误的。这是非常可悲的。