# Cognizant Coding Question- 3

### 2 comments on “Cognizant Coding Question- 3”

• Sabari

import java.util.ArrayList;

public class three {
public static void main(String[] args) {
int size = 3;
int arr[] = { 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0 };
ArrayList cache = new ArrayList();
int count = 0;

for (int i = 0; i < arr.length; i++) {
if (!cache.contains(arr[i])) {
if (cache.size() < size) {
count++;
}

else {
count++;
cache.remove(0);
}
} else {
int index = cache.indexOf(arr[i]);
cache.remove(index);
}
}
System.out.print(count);

}

}

• Aqib

Solution:-

import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int p=sc.nextInt();
int v=sc.nextInt();
int miss=0,f=0,r=0;
int arr[]=new int[v];
int que[]=new int[v];
for(int i=0;i<v;i++)
arr[i]=sc.nextInt();
for(int i=0;i<v;i++)
{
int flag=0,pos=-1;
if(r<p)
{
que[i]=arr[i];
r++;
miss++;
}
else
{
for(int j=f;j<r;j++)
{
if(arr[i]==que[j])
{
flag=1;
pos=j;
break;
}
}
if(flag==1)
{
for(int j=pos;j<r-1;j++)
{
que[j]=que[j+1];
}
que[r-1]=arr[i];
}
else
{
f++;
que[r++]=arr[i];
miss++;
}
}
}
System.out.println("Miss="+miss);
}
}