gpt4 book ai didi

Java程序(偶数索引中偶数没有,奇数索引中奇数没有)

转载 作者:行者123 更新时间:2023-12-02 08:54:47 26 4
gpt4 key购买 nike

所以问题是排列一个数组,其中偶数个数组位于偶数索引中,奇数个数组位于奇数索引中。

示例 1:[3,6,2,0,0,6,9,9,89,10,1]

输出:[6,3,2,9,0,9,0,89,6,1,10]

示例 2:[1, 1, 1, 1, 2]

输出:[2, 1, 空, 1, 空, 1, 空, 1]

示例 3:[2,2,2]

输出:[2,空,2,空,2]

示例 4:[1,1,1]

输出:[空,1,空,1,空,1]

(如果偶数或奇数个数较少,则置空值)

我已经尝试过这个程序,但无法通过所有测试用例。谁能用java语言给出正确答案。这是我尝试过的代码:


import java.io.*;
import java.util.*;
public class eveodd
{
public static void main(String args[])throws IOException
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the no of elements");
int n=sc.nextInt();
sc.nextLine();
int p=0;
int a[]=new int[n];
System.out.println("Enter the elements");
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
sc.nextLine();
}

if(n%2==0)
{
p=n;
}
else
{
p=n+1;
}
Integer b[]=new Integer[100];

int c=0;int d=1;
for(int i=0;i<n;i++)
{
if(a[i]%2==0)
{
b[c]=a[i];
c+=2;
}
if(a[i]%2!=0)
{
b[d]=a[i];
d+=2;
}


}
for(int i=0;i<d;i++)
{
System.out.println(b[i]);
}
}
}

我正在做的是用空值填充数组,其中偶数索引为偶数,奇数为数组的奇数索引。我面临的问题是我应该打印多少索引最终(b [])数组。另外,有没有其他方法可以找到最终 (b[]) 数组的大小,因为我给它的大小为 100。欢迎任何其他解决方案或不同的代码(java 语言)。

最佳答案

我首先计算奇数和偶数的数量,然后计算结果所需的数组大小。

static Integer[] evenOdd(int... input) {
int countEven = 0, countOdd = 0;
for (int value : input) {
if ((value & 1) == 0)
countEven++;
else
countOdd++;
}
Integer[] result = new Integer[Math.max(countEven * 2 - 1, countOdd * 2)];

int idxEven = -2, idxOdd = -1;
for (int value : input)
result[(value & 1) == 0 ? (idxEven += 2) : (idxOdd += 2)] = value;
return result;
}

测试

public static void main(String[] args) {
test();
test(1);
test(2);
test(3, 6, 2, 0, 0, 6, 9, 9, 89, 10, 1);
test(1, 1, 1, 1, 2);
test(2, 2, 2);
test(1, 1, 1);
}
static void test(int... input) {
System.out.println(Arrays.toString(input) + " -> " + Arrays.toString(evenOdd(input)));
}

输出

[] -> []
[1] -> [null, 1]
[2] -> [2]
[3, 6, 2, 0, 0, 6, 9, 9, 89, 10, 1] -> [6, 3, 2, 9, 0, 9, 0, 89, 6, 1, 10]
[1, 1, 1, 1, 2] -> [2, 1, null, 1, null, 1, null, 1]
[2, 2, 2] -> [2, null, 2, null, 2]
[1, 1, 1] -> [null, 1, null, 1, null, 1]

关于Java程序(偶数索引中偶数没有,奇数索引中奇数没有),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60551710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com