从数组中删除重复项

我有关于Java数组的功课,我被这个问题困扰。

  

填写以下程序的主体,该主体从排序的数组输入中删除重复的值。您的解决方案应将变量结果设置为删除重复值后剩余的值数。例如,如果输入为(0,1,2,3,4,4),则删除重复项后前五个输入值应为(0,4),结果值应为5。

这是我的代码:

import java.util.Scanner;
    public class RemoveDups {
      public static void main (String[] args) {
        Scanner scan = new Scanner(System.in);

        int[] input = 0,4;
        int result;


int count = input[0];
        result++;
        String count1="";
        int result2=0;
        count1=count1+count;
        input[0]=Integer.parseInt(count1);
        count1="";

    for (int j = 1; j <input.length-1;j++ ) {
        if (count != input[j+1] && result2 == 0||count != input[j-1] &&result2==0  ) {
            input[j] = count;
            result++;


            count = input[j + 1];
            count1=count1+count;

            input[j]=Integer.parseInt(count1);
            count1="";

        }
    }


        for (int i = 0; i < result; i++) {
          System.out.println(input[i]);
        }
      }
    }

}

我不能做这个练习。我始终将数组中的最后一个单元格与所有其他单元格都保留下来,并且此代码对我不起作用。

liync 回答:从数组中删除重复项

  public static int removeDuplicateElements(int arr[],int n){  
        if (n==0 || n==1){  
            return n;  
        }    
        int j = 0;
        for (int i=0; i < n-1; i++){  
            if (arr[i] != arr[i+1]){  
                arr[j++] = arr[i];  
            }  
        }  
        arr[j++] = arr[n-1];  
        return j;  
    } 

  public static void main(String args []) {
            int arr[] = {0,1,2,3,4,4};  
            int length = arr.length;  
            length = removeDuplicateElements(arr,length);  

            for (int i=0; i<length; i++)  
               System.out.print(arr[i]+" ");  

    }

答案为0 1 2 3 4

请参考以下链接。 Remove Duplicate Element in Array using separate index

,

我不确定您是否需要过滤的数组还是仅需要结果值。以下将为您提供结果值。 由于这是家庭作业,因此建议您使用以下逻辑来创建非重复数组。

    int result = 1;
    if(input == null || input.length == 0){
        result = 0;
    }

    else{
        for(int i = 1; i < input.length; i++){
            if(input[i-1] != input[i]){
                result++;
            }
        }
    }
本文链接:https://www.f2er.com/3154794.html

大家都在问