Removing duplicates from an array

 package com.company;


import java.util.Arrays;

public class Array6 {
// Efficient method
public static int remove(int[] arr, int n) {
int res = 1;
for (int i = 1; i < n; i++) {
if (arr[i] != arr[res - 1]) {
arr[res] = arr[i];
res++;
}
}
return res;
}

// Naive method
public static int remDuplicates(int[] arr, int n) {
int[] temp = new int[n];
temp[0] = arr[0];
int res = 1;

for (int i = 1; i < n; i++) {
if (arr[i] != temp[res - 1]) {
temp[res] = arr[i];
res++;
}
}
for (int j = 0; j < res; j++) {
arr[j] = temp[j];
}
return res;
}

// Removing duplicates element from a sorted array my solution
public static int removeDuplicate(int[] arr, int n) {
int count = 0;
int res = 0;
int a = 0;
if (n == 1) {
return 1;
}
for (int i = 0; i < n - 1; i++) {
if (arr[i] != arr[res] || a == 0) {
for (int j = i + 1; j < n; j++) {
if (arr[i] == arr[j]) {
res = j;
count++;
a++;
}
}
}
}
return (n - count);
}

public static void main(String[] args) {
int[] array = {10, 56, 78, 98, 98, 100, 100};
System.out.println(remove(array, 7));
}
}

Comments