P1540 机器翻译(模拟,洛谷,java)

洛谷链接:https://www.luogu.com.cn/problem/P1540

题目大意:内存有限,单词滚动保存,查找单词得看内存中有无,无则覆盖之前单词,像队列一样不断更新。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        
    	Scanner in=new Scanner(System.in);
    	int m=in.nextInt();   //内存容量
    	int n=in.nextInt();   //文章长度
    	int[] a=new int[m];   //定义m大小的数组
    	
    	//题目说数据为   非负整数  -1记录空间没被占用
    	for(int i=0;i<m;i++) {
    		a[i]=-1;
    	}
    	
    	int j;              //定义全局变量,使得j的作用返回不止for循环
    	int index=0,count=0;  //index用于记录顺序,count记录翻译次数
    	
    	for(int i=0;i<n;i++) {
    		int word=in.nextInt();
    		for(j=0;j<m;j++) {
    			if(a[j]==word) {
    				break;    //如果字典有,则不用翻译
    			}
    		}
    		if(j==m) {
    			//如果字典没有,则翻译次数加,存入新单词
    			count++;
    			a[index++%m]=word;
//    			index++;  上一步的细化
    		}
    	}
    	System.out.println(count);
        
    }
}
发布了68 篇原创文章 · 获赞 26 · 访问量 619

猜你喜欢

转载自blog.csdn.net/weixin_44685629/article/details/103827923