所以我有一个N大小的数组A包含正整数。 数组可能有很多重复项,我想找到行进数组的最短距离并访问数组中出现的每个数字
从A [0]开始迭代数组的最佳方法是什么,等等。
到目前为止,我已经提出将所有数字添加到一个集合中,以便我可以比较我是否已经在那里。
例如,在以下数组中,访问所有数字的最短距离是5
Integer[] nums = { 2, 6, 7, 2, 3, 3, 1, 2 };
所以我将它们添加到一个哈希集
Set<Integer> UniqueNums = new HashSet<>(Arrays.asList(nums));
这是我感到困惑的地方 我知道以下是错误的,它只有psudocode但是
我会做点什么int count = 0;
for(int i : nums )
{
if(UniqueNums.contains(i)
{
count ++;
}
}
答案 0 :(得分:1)
你能不能试试吧......这只是一个伪代码。
int count = 0;
int i =0;
while(i < nums.lnegth && UniqueNums.size() >0)
{
UniqueNums.remove (nums[i]);
i++;
}
Sysout("minimum length of array containing all unique element from starting " + i);
我在做什么 - &gt;在设置了唯一元素之后,我正在迭代数组并开始删除我在nums中访问过的元素。 当我在那个时间访问了nums中的所有唯一元素时,“UniqueNums”将为空并且它将终止循环