《Cracking the Coding Interview程序员面试金典》----猫狗收容所
算法知识视频讲解
题目描述
有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。
给定一个操作序列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程序员面试金典》----猫狗收容所相关推荐
- 程序员面试金典--笔记(精华篇)
原文链接:http://codeshold.me/2017/01/cracking_interview.html <程序员面试金典> 1-7章的总结 相关读物<金领简历:敲开苹果.微 ...
- 程序员面试金典--第k个数
程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...
- 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...
- 《程序员面试金典》解题目录(更新完毕)
题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...
- C#LeetCode刷题-程序员面试金典
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...
- 《程序员面试金典》+《算法导论》
<程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...
- 程序员面试金典——18.13 最大字母矩阵
程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...
- 程序员面试金典——18.12最大和子矩阵
程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...
最新文章
- 为什么您应该使用基于标准的开发实践
- 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
- Oracle认证成功获取方案
- 用Windows Live Writer在51CTO写博客
- HTML里面Textarea换行总结
- [WP8] ListBox的Item宽度自动填满
- 常用的Webserver接口
- android中的用户资源访问(一)
- Crnn中文end-to-end识别
- spring boot: 组合注解与元注解
- ffmpeg检测文件是否损坏_[音视频] 下载M3U8加密视频文件
- MySql中创建用户以及设置其操作权限
- supervisor来管理和监控进程
- 云信api_服务端API文档
- 工作站性能测试软件,国产工作站“王炸”来了! 曙光桌面工作站评测
- jquery提交表单错误
- java生成图片中文乱码_Java生成图片乱码问题的解决方法
- 74ls20设计半加器_数字电子技术实验练习内容
- Linux 实用指令 -- 关机、重启和用户登录注销、用户管理
- 下载Macromedia FLASHPAPER