【发布时间】:2019-04-05 18:13:25
【问题描述】:
我需要创建一个从两个数组中获取数字的输出:a 和 b;并打印出唯一的,但只打印一次。例如,如果有
int[] a = { 4,3,4,3,6,7,4,8,2,9 };
int[] b = { 2,3,6,8,1,5 };`
输出应该是7, 4, 9
不是4, 4, 7, 4, 9
在任务中,它直接说:“不要创建任何辅助数组、集合或字符串。不要使用标准 java.lang 以外的包中的任何类。不能修改数组(特别是不能已排序)。打印值的顺序无关紧要。”
我有 90%,我就是无法让 a 数组不重复数字
public class Main {
public static void main(String[] args)
{
int[] a = new int[]{1,2,12,2,3,4,5,6,7,8,9,7,123};
int[] b = new int[]{2,1,3,6,4,5,8,9,12};
for (int i=0;i<a.length;i++)
{
int count =0;
for (int j=0;j<b.length;j++)
{
if(b[j]==a[i])count++;
}
if (count==0) System.out.print(a[i] + " ");
}
}
}
我希望7 123。
实际上它打印7 7 123。
我知道这一定是非常简单的事情,但我只是一个初学者,还不能完全理解它。
非常感谢任何帮助。
【问题讨论】:
-
用调试器逐步完成,或者只是用纸/笔[cil]玩电脑。
-
您目前没有任何用于在 single 数组中进行重复数据删除的逻辑。有多种处理方式。
-
这就是任务的字面意思:“编写一个程序,它定义两个整数数组并打印第一个数组中没有出现在第二个数组中的所有元素,但每个值只出现一次,没有重复。例如对于数组 int[] arr = { 4,3,4,3,6,7,4,8,2,9 }; int[] brr = { 2,3,6,8,1,5 }; 结果可能是(打印值的顺序无关):7 4 9 不要创建任何辅助数组、集合或字符串。不要使用标准 java.lang 以外的包中的任何类。不能修改数组(尤其是它们无法排序)。”
-
@monoxide 当您打印第一个数组中的唯一元素时,假设以 4 为例,4 在 arr 中重复 3 次,因此您检查 count == 0 并打印该值,因为4 在第二个数组中不存在,但也验证您是否已经使用了该数字,只需通过从当前索引 -1 到 0 遍历 arr,如果这是第一次出现,则打印它,如果不是第一次出现,那么你'已经打印了号码。希望这会有所帮助
-
感谢您的解释以及解决方案! @Juseeth
标签: java arrays for-loop printing unique