Remove the occurrences of an element from array if it occurs more than n times.
For Example :-
{ 20, 37, 20, 21 } (n->1) -> { 20, 37, 21}
{ 1, 1, 1, 1, 1 } (n->5) -> { 1, 1, 1, 1, 1 }
I tried this in my first attempt & it work...
But it's long.....
public class arr{
public static void main(String[] args){
int a[] = {1,1,3,3,7,2,2,2,2}; //Array of the elements
int b =3; // maximum occurrences
int u=1; // Counter for same number of elements
int c[] = new int[nterms(a, b)]; //initializing new array
int k=0;
int l=0;
for(int i =a.length-1; i>=0; i--){
k=0;
// Checking the duplicate elements.
for(int j=i-1; j>=0; j--){
if(a[i]==a[j]){
k++;
}
}
if(k!=b){
c[c.length-u] = a[i];
u++;
}
}
for(int i =0; i<c.length; i++)
System.out.println(c[i]);
}
// Returns no. of unique elements.
public static int nterms(int[] x, int y){
int k=0;
int l=0;
for(int i =0; i<x.length; i++){
k=0;
for(int j=i+1; j<x.length; j++){
if(x[i]==x[j]){
k++;
}
}
if(k==y){
l++;
}
}
return (x.length-l);
}
}
Can anybody recommend more efficient way ????