Java怎么告诉我已经去过数组中的所有数字

时间:2017-12-03 01:13:11

标签: java arrays shortest-path

所以我有一个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 ++;
       }

   }

1 个答案:

答案 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”将为空并且它将终止循环