FIFO算法根據頁面進入內存的時間先後選擇淘汰頁面,先進入內存的頁面先淘汰,後進入內存的後淘汰。
假設Cache的大小爲2,有5個頁面請求,分別爲 2 1 2 3 1,則Cache的狀態轉換爲:(2)->(2,1)->(2,1)->(1,3)->(1,3),其中第1,2,4次缺頁,總缺頁次數爲3。
現在給出Cache的大小n和m個頁面請求,請算出缺頁數。
package demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo0615_2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
while(s.hasNext()){
int space=s.nextInt();
int n=s.nextInt();
ArrayList<Integer> list=new ArrayList<Integer>();
int res=0;
for(int i=0;i<n;i++){
int temp=s.nextInt();
if(list.contains(temp))
continue;
else{
res++;
list.add(temp);
}
if(list.size()>space)
list.remove(0);
}
System.out.println(res);
}
}
}