Java 如何判断我已经访问了数组中的所有数字
Java how to tell I have been to all numbers in an array
所以我有一个包含正整数的 N 大小的数组 A。
该数组可能有很多重复项,我想找到行进数组的最短距离并访问数组中出现的每个数字
从 A[0] 开始迭代数组的最佳方法是什么,依此类推。
到目前为止,我已经想出了将所有数字添加到一个集合中的方法,这样我就可以比较我是否已经去过那里。
例如在下面的数组中访问所有数字的最短距离是5
Integer[] nums = { 2, 6, 7, 2, 3, 3, 1, 2 };
所以我将它们添加到哈希集
Set<Integer> UniqueNums = new HashSet<>(Arrays.asList(nums));
这是我感到困惑的地方
我知道以下是错误的并且它是唯一的伪代码但是
我会按照
的方式做一些事情
int count = 0;
for(int i : nums )
{
if(UniqueNums.contains(i)
{
count ++;
}
}
你能试试这个....这只是一个伪代码。
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);
我在做什么 -> 在设置唯一元素后,我正在迭代数组并开始删除我在 nums 中访问过的元素。
当我当时访问了 nums 中的所有唯一元素时 "UniqueNums" 将为空并且它将终止循环
所以我有一个包含正整数的 N 大小的数组 A。 该数组可能有很多重复项,我想找到行进数组的最短距离并访问数组中出现的每个数字
从 A[0] 开始迭代数组的最佳方法是什么,依此类推。
到目前为止,我已经想出了将所有数字添加到一个集合中的方法,这样我就可以比较我是否已经去过那里。
例如在下面的数组中访问所有数字的最短距离是5
Integer[] nums = { 2, 6, 7, 2, 3, 3, 1, 2 };
所以我将它们添加到哈希集
Set<Integer> UniqueNums = new HashSet<>(Arrays.asList(nums));
这是我感到困惑的地方 我知道以下是错误的并且它是唯一的伪代码但是 我会按照
的方式做一些事情int count = 0;
for(int i : nums )
{
if(UniqueNums.contains(i)
{
count ++;
}
}
你能试试这个....这只是一个伪代码。
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);
我在做什么 -> 在设置唯一元素后,我正在迭代数组并开始删除我在 nums 中访问过的元素。 当我当时访问了 nums 中的所有唯一元素时 "UniqueNums" 将为空并且它将终止循环