面试金典-猫狗问题

来源:互联网 发布:c语言主函数参数 编辑:程序博客网 时间:2024/05/29 03:34


import java.util.*;public class CatDogAsylum {    public ArrayList<Integer> asylum(int[][] ope) {        // write code here    LinkedList<Integer> cat = new LinkedList<Integer>();    LinkedList<Integer> dog = new LinkedList<Integer>();    ArrayList<Integer> result= new ArrayList<Integer>();    int len = ope.length;    for(int i = 0; i<len; i++){    int[] flag = ope[i];    int addOrTake = flag[0];    int catOrDog = flag[1];    //添加动物    if(addOrTake == 1){    if(catOrDog>0)//狗    dog.add(i);    if(catOrDog<0)//猫    cat.add(i);    }    //收养动物    if(addOrTake == 2){       //猫狗都有    if(!dog.isEmpty() && !cat.isEmpty()){    if(catOrDog == 0 && dog.getFirst()<cat.getFirst()|| catOrDog == 1)    result.add(ope[dog.poll()][1]);    else if(catOrDog == 0 &&dog.getFirst()>cat.getFirst()|| catOrDog == -1)    result.add(ope[cat.poll()][1]);    }        //只有猫         else if(dog.isEmpty() && !cat.isEmpty()&&(catOrDog == 0 || catOrDog == -1)){    result.add(ope[cat.poll()][1]);    }    //只有狗         else if(!dog.isEmpty() && cat.isEmpty()&&(catOrDog == 0 || catOrDog == 1)){    result.add(ope[dog.poll()][1]);    }    }     }    return result;    }}

题目描述

        有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。

       给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;若第一个元素为2,则代表有人收养动物,第二个元素若为0,则采取第一种收养方式,若为1,则指定收养狗,若为-1则指定收养猫。请按顺序返回收养的序列。若出现不合法的操作,即没有可以符合领养要求的动物,则将这次领养操作忽略。

测试样例:
[[1,1],[1,-1],[2,0],[2,-1]]
返回:[1,-1]
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 转行会计没经验怎么办 澳洲coe被取消怎么办 父母不同意嫁远怎么办 家人不同意我们在一起怎么办 语言课申请不到怎么办 墨尔本大学均分不够怎么办 去澳洲旅游签证怎么办 换新护照澳大利亚签证怎么办 大学错过交学费日期怎么办 留学加拿大申请工签被拒怎么办 英国大学挂科怎么办 小孩子学不进去怎么办 大学生学不进去怎么办 高考没考上本科怎么办 想读书家里没钱怎么办 考上大学没钱上怎么办 儿子没考上大学怎么办 后悔没上大学怎么办 把学费花了怎么办 临床预科挂科怎么办 补录了预科怎么办 美国预科没过怎么办 出国留学报到证怎么办 本科绩点2.93怎么办 在美国被抢劫怎么办 去美国留学费用怎么办 被美国大学停学怎么办 雅思作文字数不够怎么办 英国选修课挂科怎么办 英国双申保证金怎么办 研究生挂科了怎么办 大一绩点没过2.0怎么办 美国留学生打工超时怎么办 ucl挂科了怎么办 硕士不会发论文怎么办 中兴今年招聘硕士生怎么办 rmit 语言班不过怎么办 非深圳户口怎么办护照 学位网学历认证怎么办 中国高中gpa低怎么办 函数毕业证丢了怎么办