【发布时间】:2018-10-31 12:20:12
【问题描述】:
我需要一些帮助。最近开始学习编程,我遇到了遇到问题的任务。任务是:有两个对象数组和步骤数。目标是合并它们,然后在每一步中,如果来自不同数组的两个对象相遇,则交换它们,但它们每个都只去一个方向。我不需要实现,只需要算法方面的帮助。
数组 1:A、B、C 数组 2:1,2,3(这两个数组每个都可以大于 3 个对象并且没有 长度相同) 合并数组:A,B,C,1,2,3 步数:5第 1 步:A,B,1,C,2,3
第 2 步:A,1,B,2,C,3
步骤 3:1,A,2,B,3,C
步骤 4:1,2,A,3,B,C
步骤 5:1,2,3,A,B,C
我的尝试是:
public void Move(int steps)
{ for (int i = 0; i<steps; i++)
{for (int j = 0; j<mergedArray.size()-1; j++){
if (!mergedArray.get(j).getType().equals(mergedArray.get(j+1).getType()))
{ Collections.swap(mergedArray, j, j+1);
j++;
}
}
}
但这只适用于一半的步骤。
感谢您的帮助!
编辑:代码中的固定数组边界
【问题讨论】: