我有一组包含相同数量的数字的 2 个 int 数组
例如
int[] array1 = {1,3,5,5,2}
int[] array2 = {5,3,4,4,4}
我需要根据 2 个标准来比较它们
- 有多少元素在同一个索引上有相同的值
- 有多少元素在不同的索引上具有相同的值
并返回一个表示值的整数数组
我有几个例子,以便您更好地理解:
int[] array0 = {1,3,5,5,2};
int[] array1 = {5,3,4,4,4};
int[] array2 = {5,3,4,4,5};
int[] array3 = {2,3,2,2,4};
int[] array4 = {5,5,2,1,3};
int[] array5 = {3,1,5,5,2};
int[] array6 = {1,3,5,5,2};
compare(array0,array1); //this would return 1,1
compare(array0,array2); //this would return 1,2
compare(array0,array3); //this would return 1,1
compare(array0,array4); //this would return 0,5
compare(array0,array5); //this would return 3,2
compare(array0,array6); //this would return 5,0
对于第一个数字很简单,我只需要检查 array1 的索引 i 上的元素是否与 array2 中的相同。
我在生成第二个数字时遇到问题,因为应该采用其中一个数组中的最小数字。如果我只看 array1 的元素是否在 array2 的某个地方,它在某些情况下会产生错误的结果。
如果你看
int[] array1 = {1,3,5,5,2}
和
int[] array3 = {2,3,2,2,4};
并检查 array1 在索引上是否与 array3 具有相同的内容,它会返回 3 个数字相等但在不同的位置,这是错误的,因为它应该从最小的数字判断,结果应该是 1。
如果我切换它来比较 array3 在某个索引上是否与 array1 具有相同的内容,它适用于这种情况,但不适用于其他情况。
关于如何解决这个问题的任何想法,我很无能?