相关疑难解决方法(0)

如何在不使用Set的情况下有效地从数组中删除重复项

我被要求编写自己的实现来删除数组中的重复值.这就是我创造的.但经过1,000,000个元素的测试后,需要很长时间才能完成.我可以做些什么来改进我的算法或删除任何错误?

我需要写我自己的实现-不使用Set,HashSet等等.或者任何其他工具,如迭代器.只需一个数组即可删除重复项.

public static int[] removeDuplicates(int[] arr) {

    int end = arr.length;

    for (int i = 0; i < end; i++) {
        for (int j = i + 1; j < end; j++) {
            if (arr[i] == arr[j]) {                  
                int shiftLeft = j;
                for (int k = j+1; k < end; k++, shiftLeft++) {
                    arr[shiftLeft] = arr[k];
                }
                end--;
                j--;
            }
        }
    }

    int[] whitelist = new int[end];
    for(int i = 0; i < end; …
Run Code Online (Sandbox Code Playgroud)

java arrays optimization

39
推荐指数
9
解决办法
34万
查看次数

在数组中查找重复项

给定一个n个整数元素的数组,如何在不使用任何额外空间的情况下在O(n)时间内找到数组中是否存在重复项.

额外的空间意味着额外的O(n)空间.

Xor操作员是否以任何方式提供帮助.

algorithm

24
推荐指数
2
解决办法
5万
查看次数

标签 统计

algorithm ×1

arrays ×1

java ×1

optimization ×1