Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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中使用递归查找数组中的最高奇数 public static int highestOdd(int[]arr,int index) { if(arr.length-1==index)返回arr[index]; int high=highestOdd(arr,索引+1); 高=高>arr[指数]?高:arr[指数]; 高回报; }_Java_Arrays_Recursion - Fatal编程技术网

在java中使用递归查找数组中的最高奇数 public static int highestOdd(int[]arr,int index) { if(arr.length-1==index)返回arr[index]; int high=highestOdd(arr,索引+1); 高=高>arr[指数]?高:arr[指数]; 高回报; }

在java中使用递归查找数组中的最高奇数 public static int highestOdd(int[]arr,int index) { if(arr.length-1==index)返回arr[index]; int high=highestOdd(arr,索引+1); 高=高>arr[指数]?高:arr[指数]; 高回报; },java,arrays,recursion,Java,Arrays,Recursion,索引总是传递为0,因此此代码将检查所有数字,包括偶数,但我只想输出最高的奇数。 我希望有人能帮助我 感谢您的光临。如果arr[index]值更高,用arr[index]替换high值时,只需检查该值是否为奇数即可。否则保持高值不变。请尝试以下代码。如果数组中没有奇数值,它将返回-1(假设数组的所有值都是正值,如果有可能是负值,则可以用整数min替换-1)。如果你不懂任何部分,请告诉我 public static int highestOdd(int [] arr, int index) {

索引总是传递为0,因此此代码将检查所有数字,包括偶数,但我只想输出最高的奇数。 我希望有人能帮助我
感谢您的光临。

如果arr[index]值更高,用arr[index]替换high值时,只需检查该值是否为奇数即可。否则保持高值不变。请尝试以下代码。如果数组中没有奇数值,它将返回-1(假设数组的所有值都是正值,如果有可能是负值,则可以用整数min替换-1)。如果你不懂任何部分,请告诉我

public static int highestOdd(int [] arr, int index) {
   if(arr.length - 1 == index) return arr[index] % 2 > 0 ? arr[index] : -1;
   int high = highestOdd(arr,index+1);
   if(arr[index] % 2 > 0) high = high > arr[index] ? high : arr[index];
   return high;
}

仅当遇到奇数整数时更新“高”

public static int highestOdd(int[] arr, int index) {
        // When last Integer is odd.
        if (index == arr.length - 1 && arr[index] % 2 != 0) {
            return arr[index];
        }
        // When last Integer is even.
        else if(index == arr.length - 1)
            return Integer.MIN_VALUE;

        int high = highestOdd(arr, index+1);
        //Update high only when current index has odd.
        if(arr[index]%2 != 0){
            high = high > arr[index] ? high : arr[index];
        }
        return high;
    }

“奇数”指的是奇数索引数或奇数?这是一个很好的问题,可以确保您不会学到任何东西。请注意此
arr[index]%2==1
。最好这样表达
arr[index]%2!=0
包含负数。但不应
a%n
始终返回范围
0到n-1的正整数。从数学上讲,实际上,你可以把每个余数都表示为负数。围绕这一点有很多讨论。实际上,根据编程语言的不同,您将得到一个负数或正数,因此,为了确保无论其符号是什么,最好将其表示为
!=0
。谢谢,我不知道。通常认为
%
运算符类似于数学
模块化
函数,它总是返回一个正整数。将在答案中进行更改。