gpt4 book ai didi

java - 最后添加与特定键匹配的数组中的元素

转载 作者:行者123 更新时间:2023-12-01 19:22:03 25 4
gpt4 key购买 nike

在下面的代码中,如果数组元素与特定键匹配,我将尝试在数组中最后添加整数,假设在我的情况下 k=1。但我无法弄清楚在数组中最后添加元素后如何迭代数组以检查是否有任何元素可以移动到数组的最后一个。另外,我不想使用任何java集合。请在这方面帮助我。

int[] a=new int[8];
int key=1;
int temp,c=0;
a[0]=1;a[1]=1;a[2]=2;a[3]=1;
a[4]=1;a[5]=1;a[6]=3;a[7]=4;
int l=a.length;
for(int i=0;i<l;i++) {
c=i;
if(a[i]==key) {
temp=a[i];
while(c<l-1) {
a[c]=a[c+1];
c++;
}
a[l-1]=temp;
}
}

正如我们所看到的,在上面的代码中 key=1 与索引(i=0,1,3,4,5)中存在的元素匹配,我将元素放在最后并将所有其他元素移动到前一个索引,但问题是在移位之后,我再次需要检查数组是否有任何元素仍然与 key(k=1) 匹配并且需要放在数组的最后。希望我能解决我的问题。

此输出 - 12134111但所需的输出是 23411111。意味着所有与 key=1 匹配的元素都应该放在最后。

最佳答案

您可以根据此稍微修改您的算法:

import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] a = new int[8];
int key = 1;
a[0] = 1;
a[1] = 1;
a[2] = 2;
a[3] = 1;
a[4] = 1;
a[5] = 1;
a[6] = 3;
a[7] = 4;
for (int i = 0; i < a.length; i++) {
if (a[i] != key) {
continue;
}
//find next element which doesn't equal to key and swap
for (int j = i; j < a.length; j++) {
if (a[j] != a[i]) {
int t = a[i];
a[i] = a[j];
a[j] = t;
break;
}
}
}

System.out.println(Arrays.toString(a));
}
}

输出:[2,3,4,1,1,1,1,1]

关于java - 最后添加与特定键匹配的数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347891/

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