时间限制:3秒  空间限制:32768K  热度指数:1535
本题知识点:  栈  队列

算法知识视频讲解

题目描述

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

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

测试样例:
[[1,1],[1,-1],[2,0],[2,-1]]

返回:[1,-1]

代码如下:

class CatDogAsylum {
public:vector<int> asylum(vector<vector<int> > ope) {vector<int>result;int flag;  int len=ope.size();  for(int i=0;i<len;i++)  {  if(ope[i][0]==2)  {  flag=0;  if(ope[i][1]==0)//按照第一种方式选动物;  {  for(int j=0;j<i&&flag==0;j++)  {  if(ope[j][0]==1)//最早的动物;  {  result.push_back(ope[j][1]);  ope[j][0]=-1;//表示已经选过;  flag=1;  }  }  }  else  if (ope[i][1]==1)//取第一个狗;  {  for(int j=0;j<i&&flag==0;j++)  {  if(ope[j][0]==1&&ope[j][1]>=0)  {  result.push_back(ope[j][1]);  ope[j][0]=-1;//表示已经选过;  flag=1;  }  }  }  else//取第一个猫;  {  for(int j=0;j<i&&flag==0;j++)  {  if(ope[j][0]==1&&ope[j][1]<0)  {  result.push_back(ope[j][1]);  ope[j][0]=-1;//表示已经选过;  flag=1;  }  }  }  }  }  return result;  }
};
不懂的可以加我的QQ群:261035036(IT程序员面试宝典

群) 欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~

《Cracking the Coding Interview程序员面试金典》----猫狗收容所相关推荐

  1. 程序员面试金典--笔记(精华篇)

    原文链接:http://codeshold.me/2017/01/cracking_interview.html <程序员面试金典> 1-7章的总结 相关读物<金领简历:敲开苹果.微 ...

  2. 程序员面试金典--第k个数

    程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...

  3. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  4. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  5. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

  6. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  7. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  8. 程序员面试金典——18.13 最大字母矩阵

    程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...

  9. 程序员面试金典——18.12最大和子矩阵

    程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...

最新文章

  1. 为什么您应该使用基于标准的开发实践
  2. 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
  3. Oracle认证成功获取方案
  4. 用Windows Live Writer在51CTO写博客
  5. HTML里面Textarea换行总结
  6. [WP8] ListBox的Item宽度自动填满
  7. 常用的Webserver接口
  8. android中的用户资源访问(一)
  9. Crnn中文end-to-end识别
  10. spring boot: 组合注解与元注解
  11. ffmpeg检测文件是否损坏_[音视频] 下载M3U8加密视频文件
  12. MySql中创建用户以及设置其操作权限
  13. supervisor来管理和监控进程
  14. 云信api_服务端API文档
  15. 工作站性能测试软件,国产工作站“王炸”来了! 曙光桌面工作站评测
  16. jquery提交表单错误
  17. java生成图片中文乱码_Java生成图片乱码问题的解决方法
  18. 74ls20设计半加器_数字电子技术实验练习内容
  19. Linux 实用指令 -- 关机、重启和用户登录注销、用户管理
  20. 下载Macromedia FLASHPAPER

热门文章

  1. pad看linux源码,在 iPad和 iPhone的浏览器上查看网页源代码
  2. 我们到底在恐惧什么?
  3. Spring 和 JAVA 的牵绊
  4. Neo4j CQL - DELETE删除
  5. 华硕路由器(RT-AC86U)架设简易git服务器
  6. 华硕路由器远程代码执行漏洞通告
  7. java web pring log4j_springmvc之log4j
  8. Directx11教程四十三之glow(边缘发光)
  9. “小米汽车”商标被纺织品公司抢注
  10. 这样设置定时消息通知提醒,重要的信息肯定不会错过