题目链接
题解
这道题核心是先进先出,符合队列的特点,我是用LinkedList代替了queue,代码如下:
package com.company;
import java.util.LinkedList;
import java.util.Scanner;
/**
* @Author 小GUI渡江
* @Date 2022/4/8 9:55
**/
public class jiqifanyi_8 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//内存容量
int M = scan.nextInt();
//单词个数
int N = scan.nextInt();
LinkedList<Integer> sites = new LinkedList<>();
//标记内存是否存满
int flag = 0;
//统计访问次数
int count = 0;
for(int i = 0; i < N; i++) {
int num = scan.nextInt();
//判断链表是否存在num,不存在就add
if(!sites.contains(num)){
//内存没满之前,一直add
if(flag < M) {
sites.add(num);
count++;
flag++;
}else{
//内存满了之后,需要先pop,再add
sites.pollFirst();
sites.add(num);
count++;
}
}
}
System.out.print(count);
}
}