首页 > 编程语言 > 详细

Java-一维数组去重

时间:2021-09-05 20:08:57      阅读:22      评论:0      收藏:0      [点我收藏+]

Java-一维数组去重

下面使用的方法比较简单,采用的是双指针。

    /**
     * 数组去重
     */
    @Test
    public void test1() {
        int[] nums = {1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9};

        // 去重数量
        int deNumLen = 0;

        // 双指针
        // 1. 计算去重之后的数组大小
        int i = 0;
        for (; i < nums.length;) {
            // 首判断
            if (i == 0) {
                deNumLen++;
            }
            for (int j = i; j < nums.length; j++) {
                if (nums[i] != nums[j]) {
                    deNumLen++;
                    i = j;
                    break;
                }
            }
            // 尾判断
            if (i == (nums.length - 1)) {
                break;
            }
        }
        System.out.println(deNumLen);

        // 2. 根据计算出的大小创建新数组
        int[] deNums = new int[deNumLen];
        // 3. 填充数组
        int index = 0;
        while (index < deNums.length) {
            int newI = 0;
            for (; newI < nums.length;) {
                // 首判断
                if (newI == 0) {
                    deNums[index] = nums[0];
                    index++;
                }
                for (int newJ = newI; newJ < nums.length; newJ++) {
                    if (nums[newI] != nums[newJ]) {
                        newI = newJ;
                        deNums[index] = nums[newI];
                        index++;
                        break;
                    }
                }
                // 尾判断
                if (newI == (nums.length - 1)) {
                    deNums[index - 1] = nums[nums.length - 1];
                    break;
                }
            }
        }
        System.out.println(Arrays.toString(deNums));
    }

Java-一维数组去重

原文:https://www.cnblogs.com/twentyone/p/15228723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!