Java 有关于如何修复我的代码的提示吗?
问题是:当给定一个数组Java 有关于如何修复我的代码的提示吗?,java,arrays,Java,Arrays,问题是:当给定一个数组arr时,返回一个数组,该数组只包含arr中原始顺序的奇数整数 举几个例子: youMakeMeOdd({1,2,3})→ {1,3} youMakeMeOdd({1,3,5})→ {1,3,5} youMakeMeOdd({2,4,6})→ {} 这是我的代码: public int [] youMakeMeOdd(int [] arr) { int x=0; for (int i=0; i<arr.length; i++) {
arr
时,返回一个数组,该数组只包含arr
中原始顺序的奇数整数
举几个例子:
- youMakeMeOdd({1,2,3})→ {1,3}
- youMakeMeOdd({1,3,5})→ {1,3,5}
- youMakeMeOdd({2,4,6})→ {}
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;
}
public int[]youMakeMeOdd(int[]arr)
{
int x=0;
Java中的for(int i=0;i数组的大小是固定的:它们的长度不能更改
因此,您需要创建并返回一个新数组,因为结果可能包含更少的元素
确定输出数组的大小(计算奇数值)以了解结果数组的长度,然后迭代输入并将奇数添加到输出中
例如:
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;
}
你可以使用arraylist吗?使用arraylist,List List=new arraylist(Arrays.asList(array));
List.remove(1);//删除位置处的元素
1实际上我不太确定是否允许使用arraylist。