3.7---猫狗收容所(CC150)

解答的思路:建立一个queue放狗,一个queue放猫。

如下:

import java.util.*;
class Dog{
    int time;
    int value;
    Dog(int a, int b){
        time = a;
        value = b;
    }
}
class Cat{
    int time;
    int value;
    Cat(int a, int b){
        time = a;
        value = b;
    }
}

public class CatDogAsylum {

    public static ArrayList<Integer> asylum(int[][] ope){
        ArrayList<Integer> res = new ArrayList();
        Queue<Dog> dog = new ArrayDeque();
        Queue<Cat> cat = new ArrayDeque();
        int time = 0;
        for(int i = 0; i < ope.length; i++){

            if(ope[i][0] == 1){//push

                if(ope[i][1] > 0){//dog
                     Dog tmp = new Dog(time++,ope[i][1]);
                    dog.add(tmp);

                }
                else if(ope[i][1] < 0){//cat
                     Cat tmp = new Cat(time++,ope[i][1]);
                        cat.add(tmp);
                }
            }

            else if(ope[i][0] == 2){//pop
                if(ope[i][1] == 0){
                    if(!dog.isEmpty() && ! cat.isEmpty()){
                        if(dog.peek().time < cat.peek().time){
                            res.add(dog.peek().value);
                            dog.poll();
                        }
                        else{
                            res.add(cat.peek().value);
                            cat.poll();
                        }
                    }
                    else if(!dog.isEmpty()){
                        res.add(dog.peek().value);
                        dog.poll();
                    }
                    else {
                        res.add(cat.peek().value);
                        cat.poll();
                    }
                }
                else if(ope[i][1] == 1){
                    if(!dog.isEmpty()){
                        res.add(dog.peek().value);
                        dog.poll();
                    }
                }
                else if(ope[i][1] == -1){
                    if(!cat.isEmpty()){
                        res.add(cat.peek().value);
                        cat.poll();
                    }
                }

            }

        }

        return res;

    }
}
时间: 2024-11-05 12:23:06

3.7---猫狗收容所(CC150)的相关文章

【17】猫狗收容所

[题目] 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的. 给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件.若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫:若第一个元素为2,则代表有人收养动物,第二个元素若为0,则采取第一种收养方式,若为1,则指定

猫狗收容所

题目描述 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的. 给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件.若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫:若第一个元素为2,则代表有人收养动物,第二个元素若为0,则采取第一种收养方式,若为1,则指定

当当变“猴子”后能敌“猫狗”?

后知后觉虽然能看清竞争形势,可以谋而后动,弥补自身不足,增强自身竞争力,不过这也意味着将失去先机,与那些先行者的差距越来越大.即使通过让自己处于一个完美态势,却难敌用户"先入为主"的观念.已经成立15年的当当就面对着这样一个难题,在阿里.京东接连发力,独霸网购市场前两名的态势下,当当却还在和苏宁易购.1号店.亚马逊等在第二阵营中惨烈搏杀. 即使当下通过各种手段提升自己的"逼格",但终究慢了对手好几步,想让自己处于第一集团军中,再多的挣扎似乎也是徒然.而在转型的路上,

猫狗队列

1,add方法将Dog实例或Cat实例加入猫狗队列 2,pollAll将猫狗队列中的实例按插入顺序弹出 3,pollDog将猫狗队列中的Dog实例按插入顺序弹出 4,pollCat将猫狗队列中的Cat实例按插入顺序弹出 5,isEmpty判断猫狗队列中是否还有实例 6,isDogEmpty判断猫狗队列中是否还有Dog实例 7,isCatEmpty判断猫狗队列中是否还有Cat实例 #!/usr/bin/env python3 # --*-- coding: utf-8 --*-- from col

卷积神经网络入门(1) 识别猫狗

一下来自知乎 按照我的理解,CNN的核心其实就是卷积核的作用,只要明白了这个问题,其余的就都是数学坑了(当然,相比较而言之后的数学坑更难). 如果学过数字图像处理,对于卷积核的作用应该不陌生,比如你做一个最简单的方向滤波器,那就是一个二维卷积核,这个核其实就是一个模板,利用这个模板再通过卷积计算的定义就可以计算出一幅新的图像,新的图像会把这个卷积核所体现的特征突出显示出来.比如这个卷积核可以侦测水平纹理,那卷积出来的图就是原图水平纹理的图像. 现在假设要做一个图像的分类问题,比如辨别一个图像里是

自己训练卷积模型实现猫狗

原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 # 将图像复制到训练.验证和测试的目录 import os,shutil orginal_dataset_dir = 'kaggle_original_data/train' base_dir = 'cats_and_dogs_small' os.mkdir(base_dir)#保存新数据集的目录 train_dir = o

6.猫狗队列问题

问题:宠物.狗.猫的类如下 class Pet { private String type; public Pet(String type) { this.type = type; } public String getType() { return this.type; } public String toString(){ return this.getType(); } } class Dog extends Pet { public Dog(String type) { super(ty

猫狗图像识别

这里,我们介绍的是一个猫狗图像识别的一个任务.数据可以从kaggle网站上下载.其中包含了25000张毛和狗的图像(每个类别各12500张).在小样本中进行尝试 我们下面先尝试在一个小数据上进行训练,首先创建三个子集:每个类别各1000个样本的训练集.每个类别各500个样本的验证集和每个类别各500个样本的测试集. import os, shutil original_dataset_dir = '/media/erphm/DATA/kaggle猫狗识别/train'    # 原始文解压目录b

类入门例-猫狗互咬

以下例子演示动物类的写法,其中用到了构造函数. 在Main函数中,使用动物类创造出一只猫,一条狗. 猫狗互相攻击,直到一方死去. 代码如下: class Animal { public string name;//动物名称 public int hp, attack, speed;//动物血量.攻击力.攻击速度 public Animal(string n,int life,int force,int s) { name = n; hp = life; attack = force; speed

人们捐款保护猫狗是为了自己

无利不起早 做一件事情绝对有一个利益 人们捐款去救助猫狗,只是为了自己.感到满足. 去除掉好坏,善恶的定义,只从行为上来看,在没有善恶定义之前,也会做这些事情,利益无论是为了自己还是为了更大的群体.只是被动的被环境选择来做这些事情 如果生命是环境选择出来的,环境是否也会被生命选择. 其实没有所谓选择不选择,天地不仁. 原文地址:https://www.cnblogs.com/yangzihong/p/11562210.html