检查int数组的置换

时间:2018-11-09 22:47:14

标签: java arrays

# Add remote to your git repository
git remote add origin https://github.com/<user>/dummy1.git

# Check to see a list of your remotes
git remote -v

我正在编写一个函数,检查两个数组列表之间的排列。例如,置换是{2,2,1},其中唯一置换可以是{2,1,2},{1,2,2}和{2,2,1}。 {2,2}不是唯一的排列。我花了一些时间来编写此代码,并想知道它是否正确以及是否有人可以解释一种更好的方法?另外,我被告知要使用基本的数组函数来执行此操作,因此不要使用哈希图,ArrayList等。

2 个答案:

答案 0 :(得分:1)

此代码无效。您所要检查的是列表的长度相同,并且至少有一个共同的值(如前所述,return true将立即退出该函数)。所以例如[1,2,3]和[3,4,5]将作为置换返回。

这里正确的方法是对两个数组进行排序,然后逐个位置比较它们。这不仅比遍历两个数组更有效,而且可以正确处理重复值。例如。 [1,2,2]和[1,1,2]是彼此的 not 排列。

答案 1 :(得分:0)

您的代码错误,将不会检查一个数组是否是其他数组的排列。您可以找到正确的方法here。链接中的简单解决方案通过基本的数组操作为您提供了该方法,即通过对数组进行排序,而更好的数组则使用哈希。