问题在于:给定数组arr
时,返回一个数组,该数组仅包含arr
原始顺序中的奇数整数。
一些例子:
这是我的代码:
public int [] youMakeMeOdd(int [] arr)
{
int x=0;
for (int i=0; i<arr.length; i++)
{
if (arr[i]%2==1)
{
x++;
}
}
for (int i=0, m=0, j=0; j<x; m++, j++)
{
if (arr[i]%2==1)
{
arr[m]=arr[j];
}
}
return arr;
}
非常感谢!
答案 0 :(得分:1)
Java中的数组是固定大小的:它们的长度无法更改。
因此,您需要创建并返回一个新数组,因为结果可能包含较少的元素。
确定输出数组的大小(计算奇数值)以了解结果数组的长度,然后迭代输入并将奇数加到输出中。
示例:
public static int[] youMakeMeOdd(int[] arr) {
int count = 0;
for (int n : arr)
if (n % 2 == 1)
count++;
int[] result = new int[count];
int i = 0;
for (int n : arr)
if (n % 2 == 1)
result[i++] = n;
return result;
}