zoukankan      html  css  js  c++  java
  • 机器翻译

    代码如下

    #include<iostream>
    using namespace std;
    
    const int MAXN = 1000 + 5;
    struct Node                     // 进去一个出去一个,很明显,队列 
    {
        int num;                    // 保存进去的数字 
    };
    struct Node queue[MAXN];        
    bool vis[MAXN];                    // 标记数组,用来记录 队内 是否有该数字 
    int word[MAXN];                    // 输入数组 
    
    int main()
    {
        int m, n, cnt = 0;            // 队列长度   数字长度   计数器 
        cin >> m >> n;
        
        int head = 0, tail = 1;            // 初始化 
        for(int i = 1; i <= n; i++)        // 开始整活儿 
        {
            
            cin >> word[i];            
            if(vis[word[i]] == 0)        // 判断 队内 是否有该数字,如果没有进行接下来操作 
            {
                if(tail > m)            // 判断 队列 是否装满,  
                {
                    head++;                // 如果装满, 移动队首 
                    vis[queue[head].num] = false;    // 剔除 队首 
                    
                }
                queue[tail].num = word[i];        // 将输入的数字 入队 
                vis[word[i]] = true;            // 标记该数字已在 队列中 
                cnt++;                            //    计数器 +1 
                tail++;                            // 移动 队尾 
            }
        }
        
        cout << cnt << endl;            // 完活儿 
        
        return 0;            // *注意:如果该队列已经含有将要再进行判断的数字 
                            //        那么该数字不会入队
                            //  例如:队内为 1 2 3 ,判断 1 , 结束后队列依然为 1 2 3 
    }
  • 相关阅读:
    2、Azure Devops之Azure Boards使用
    1、Azure Devops之什么是Azure DevOps
    MongoDB学习笔记
    首页面作成(二)
    首页面作成(一)
    统计报表的作成(一)
    外派人员责任险项目作成总结
    Hibernate对象的状态
    Javaweb权限管理设计思路
    Ajax详解
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13720065.html
Copyright © 2011-2022 走看看