欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模拟——机器翻译

程序员文章站 2023-12-27 15:51:58
...

题目来源

呜呜,简直痛哭流涕,第一次发现Java带给我的无限的快乐,Java的很多已经写好的类还是比较好用的,重要的是我们怎么去理解和使用它,每天的一点点进步是漫长且充满着幸福的。

AC这题目的关键是学会构造一个阻塞队列,,如下

ArrayBlockingQueue<Integer> Q = new ArrayBlockingQueue<>(capa);

不多说,代码如下,希望可以解锁更多知识盲点。

/*
 * 日期:2020.02.26
 * 作者:城主
 * 题目:洛古普及题-机器翻译
 * 思路:创建一个队列,全都赋值为0,遇到单词查询一次在
 *       内存中是否有这个单词,如果有,继续下一个,如
 *       果没有,查询次数加一,将该单词添加到队尾,如
 *       果,这两一个很重要的原则是“先进先出”准则。
 */
import java.util.Scanner;
//import java.util.PriorityQueue;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.AbstractQueue;
import java.util.Collection;
import java.util.PriorityQueue;
import java.util.Random;


public class Test {
	
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		//input 
		int capa=scan.nextInt();//capacity of 
		ArrayBlockingQueue<Integer> Q = new ArrayBlockingQueue<>(capa);
	//	PriorityQueue<Integer> Q = new PriorityQueue<>(capa);
		int ar_le=scan.nextInt();
		//input word and deal with
		int search_num=0;
	    for(int i=1;i<=ar_le;i++)
	    {
	    	int word=scan.nextInt();//
	    	if(Q.contains(word))continue;
	    	else
	    	{
	    		//if(i%capa==0)
	    		if(Q.size()==capa)
	    		{
	    			Q.poll();
	    		}
	    		Q.add(word);
    			search_num++;
	    	}
	    	
	    }
	   
	   System.out.println(search_num);
		
	}
}


相关标签: Java升级打怪篇

上一篇:

下一篇: