《程序员面试金典》牛客网答案亲测
文章平均质量分 73
尘封的记忆0
今天你选择我,明天还你一个完美的作品!!
展开
-
《Cracking the Coding Interview程序员面试金典》----链表中倒数第k个结点
时间限制:1秒 空间限制:32768K 热度指数:19220本题知识点: 链表 算法知识视频讲解题目描述输入一个链表,输出该链表中倒数第k个结点。思路:1.本文所给的方法中,先遍历整个List,看有多少元素;再用总元素减去要求的倒数第k个元素的k;再遍历一下list直到遇到cout-k个元素,打印出来2.还有一种比较聪明的方法,建立两个Lis原创 2017-04-28 20:11:47 · 512 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----实时中位数
时间限制:3秒 空间限制:32768K 热度指数:496本题知识点: 高级结构 算法知识视频讲解题目描述现有一些随机生成的数字要将其依次传入,请设计一个高效算法,对于每次传入一个数字后,算出当前所有传入数字的中位数。(若传入了偶数个数字则令中位数为第n/2小的数字,n为已传入数字个数)。给定一个int数组A,为传入的数字序列,同时给定序列大小n,请返回一个int原创 2017-05-03 10:15:10 · 485 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----子串判断
时间限制:3秒 空间限制:32768K 热度指数:660本题知识点: 字符串 高级结构 算法知识视频讲解题目描述现有一个小写英文字母组成的字符串s和一个包含较短小写英文字符串的数组p,请设计一个高效算法,对于p中的每一个较短字符串,判断其是否为s的子串。给定一个string数组p和它的大小n,同时给定string s,为母串,请返回一个bool数组,每个元素代表原创 2017-05-03 14:22:00 · 426 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最长合成字符串
时间限制:3秒 空间限制:32768K 热度指数:352本题知识点: 递归 字符串 算法知识视频讲解题目描述有一组单词,请编写一个程序,在数组中找出由数组中字符串组成的最长的串A,即A是由其它单词组成的(可重复)最长的单词。给定一个string数组str,同时给定数组的大小n。请返回最长单词的长度,保证题意所述的最长单词存在。测试样例:["a","b",原创 2017-05-03 15:43:10 · 850 阅读 · 0 评论 -
变换次数
时间限制:1秒空间限制:32768K牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80.问题是,要做多少次变换,使得这个数变成个位数。 输入描述:输入一个整数。小于等于2,000,000,000。输出描述:输出一个整数,表示变换次数。输入原创 2017-05-23 10:38:17 · 676 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----下一个较大元素(所有比他大中最小的)
时间限制:3秒 空间限制:32768K 热度指数:540本题知识点: 查找 排序 栈 算法知识视频讲解题目描述现在有一个数组,请找出数组中每个元素的后面比它大的最小的元素,若不存在则为-1。给定一个int数组A及数组的大小n,请返回每个元素所求的值组成的数组。保证A中元素为正整数,且n小于等于1000。测试样例:[11,13,10,5,12,21,3],原创 2017-05-03 20:17:34 · 1068 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----下一个元素(下一个比他大的)
时间限制:3秒 空间限制:32768K 热度指数:740本题知识点: 栈 算法知识视频讲解题目描述现在我们有一个int数组,请你找出数组中每个元素的下一个比它大的元素。给定一个int数组A及数组的大小n,请返回一个int数组,代表每个元素比他大的下一个元素,若不存在则为-1。保证数组中元素均为正整数。测试样例:[11,13,10,5,12,21,3],7原创 2017-05-03 20:36:09 · 552 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----从0到n中某个数字的个数
时间限制:3秒 空间限制:32768K 热度指数:687 算法知识视频讲解题目描述请编写一个方法,输出0到n(包括n)中数字2出现了几次。给定一个正整数n,请返回0到n的数字中2出现了几次。测试样例:10返回:1思路:本道题改成针对任何数,从0到n中某个数字的个数,某个数字随便出#includeusing namespace std原创 2017-05-03 20:57:30 · 699 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----另类加法(不得使用+-x/运算符号)
时间限制:3秒 空间限制:32768K 热度指数:756 算法知识视频讲解题目描述请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。给定两个int A和B。请返回A+B的值测试样例:1,2返回:3思路:A^B相加但不进位,(A&B)代码如下:class UnusualAdd {public: int a原创 2017-05-03 21:05:25 · 552 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----整数对查找
时间限制:3秒 空间限制:32768K 热度指数:804本题知识点: 编程基础 算法知识视频讲解题目描述请设计一个高效算法,找出数组中两数之和为指定值的所有整数对。给定一个int数组A和数组大小n以及需查找的和sum,请返回和为sum的整数对的个数。保证数组大小小于等于3000。测试样例:[1,2,3,4,5],5,6返回:2思路:map原创 2017-05-03 21:19:52 · 417 阅读 · 1 评论 -
《Cracking the Coding Interview程序员面试金典》----词频统计
时间限制:3秒 空间限制:32768K 热度指数:1050本题知识点: 编程基础 算法知识视频讲解题目描述请设计一个高效的方法,找出任意指定单词在一篇文章中的出现频数。给定一个string数组article和数组大小n及一个待统计单词word,请返回该单词在文章中的出现频数。保证文章的词数小于等于1000。思路:直接调用STL函数原创 2017-05-03 21:30:50 · 741 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最大连续数列和
时间限制:3秒 空间限制:32768K 热度指数:980本题知识点: 贪心 算法知识视频讲解题目描述对于一个有正有负的整数数组,请找出总和最大的连续数列。给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。测试样例:[1,2,3,-6,1]返回:6思路:经典DP题目代码如下:class原创 2017-05-03 21:35:06 · 587 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----数字发音
时间限制:3秒 空间限制:32768K 热度指数:325本题知识点: 编程基础 算法知识视频讲解题目描述有一个非负整数,请编写一个算法,打印该整数的英文描述。给定一个int x,请返回一个string,为该整数的英文描述。测试样例:1234返回:"One Thousand,Two Hundred Thirty Four"思路:这道题不难,原创 2017-05-03 21:43:29 · 605 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----单词最近距离
时间限制:3秒 空间限制:32768K 热度指数:610本题知识点: 查找 字符串 算法知识视频讲解题目描述有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值)。给定一个string数组article,代表所给文章,同时给定文章的单词数n和待查找的两个单词x和y。请原创 2017-05-03 21:47:40 · 576 阅读 · 0 评论 -
神奇数
时间限制:1秒空间限制:32768K给出一个区间[a, b],计算区间内“神奇数”的个数。神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。 输入描述:输入为两个整数a和b,代表[a,原创 2017-05-23 11:03:35 · 1078 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最小调整有序
时间限制:3秒 空间限制:32768K 热度指数:3080本题知识点: 查找 排序 数组 算法知识视频讲解题目描述有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的起点和终点。(原序列位置原创 2017-05-04 14:07:22 · 448 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----字符串变换(字典树)
时间限制:3秒 空间限制:32768K 热度指数:327本题知识点: 字符串 队列 算法知识视频讲解题目描述现有一个字典,同时给定字典中的两个字符串s和t,给定一个变换,每次可以改变字符串中的任意一个字符,请设计一个算法,计算由s变换到t所需的最少步数,同时需要满足在变换过程中的每个串都是字典中的串。给定一个string数组dic,同时给定数组大小n,串s和串t原创 2017-05-03 10:03:06 · 616 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最大子方块(寻找01)
时间限制:3秒 空间限制:32768K 热度指数:341本题知识点: 编程基础 数组 算法知识视频讲解题目描述有一个方阵,其中每个单元(像素)非黑即白(非0即1),请设计一个高效算法,找到四条边颜色相同的最大子方阵。给定一个01方阵mat,同时给定方阵的边长n,请返回最大子方阵的边长。保证方阵边长小于等于100。测试样例:[[1,1,1],[1,0,1]原创 2017-05-02 22:06:25 · 550 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----链表中倒数第k个结点
时间限制:3秒 空间限制:32768K 热度指数:2800本题知识点: 编程基础 链表 算法知识视频讲解题目描述实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true我觉得删除节点分两步,一个是删除单向链表中上一个只想该节点的链接和该节点指向下一个节原创 2017-04-28 20:30:36 · 428 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----链表分割
时间限制:3秒 空间限制:32768K 热度指数:3274本题知识点: 编程基础 链表 算法知识视频讲解题目描述编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。思路:题目描述的是要原创 2017-04-28 20:59:52 · 505 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----链表A+B
时间限制:3秒 空间限制:32768K 热度指数:3125本题知识点: 编程基础 链表 算法知识视频讲解题目描述有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。测试原创 2017-04-28 21:14:37 · 719 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----回文链表
时间限制:3秒 空间限制:32768K 热度指数:2977本题知识点: 编程基础 链表 算法知识视频讲解题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false思路:题目描原创 2017-04-28 21:19:51 · 588 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----确定字符互异
时间限制:3秒 空间限制:32768K 热度指数:8610本题知识点: 编程基础 字符串 算法知识视频讲解题目描述请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符原创 2017-04-18 16:47:49 · 479 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----确定两串乱序同构
时间限制:3秒 空间限制:32768K 热度指数:5715本题知识点: 字符串 算法知识视频讲解题目描述给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证原创 2017-04-19 09:31:28 · 486 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----空格替换
时间限制:3秒 空间限制:32768K 热度指数:3934本题知识点: 编程基础 数组 字符串 算法知识视频讲解题目描述请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString 为原始的串,以及串的长度原创 2017-04-19 11:03:06 · 461 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----基本字符串压缩
时间限制:3秒 空间限制:32768K 热度指数:6143本题知识点: 字符串 算法知识视频讲解题目描述利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。给定一个string iniString为待压缩的串(长度小于等于10000)原创 2017-04-19 11:47:24 · 588 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----C++重载>>和<<(输入输出运算符)
在C++中,标准库本身已经对左移运算符和右移运算符>>分别进行了重载,使其能够用于不同数据的输入输出,但是输入输出的对象只能是 C++ 内置的数据类型(例如 bool、int、double 等)和标准库所包含的类类型(例如 string、complex、ofstream、ifstream 等)。如果我们自己定义了一种新的数据类型,需要用输入输出运算符去处理,那么就必须对它们进行重载。本原创 2017-04-19 16:24:58 · 1837 阅读 · 2 评论 -
《Cracking the Coding Interview程序员面试金典》----清除行列
时间限制:3秒 空间限制:32768K 热度指数:3623本题知识点: 数组 算法知识视频讲解题目描述请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。给定一个N阶方阵int[][](C++中为vector)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector),保证n小于等于300,矩阵中的元素为int范围内。原创 2017-04-19 16:57:23 · 615 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----像素翻转
时间限制:3秒 空间限制:32768K 热度指数:3726本题知识点: 编程基础 数组 算法知识视频讲解题目描述有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于原创 2017-04-19 15:41:50 · 429 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----翻转子串
时间限制:3秒 空间限制:32768K 热度指数:3626本题知识点: 编程基础 字符串 算法知识视频讲解题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1原创 2017-04-19 19:12:26 · 469 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----猫狗收容所
时间限制:3秒 空间限制:32768K 热度指数:1535本题知识点: 栈 队列 算法知识视频讲解题目描述 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2] ope(原创 2017-05-02 20:49:41 · 436 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最大字母矩阵(字母相同)
时间限制:3秒 空间限制:32768K 热度指数:262本题知识点: 动态规划 算法知识视频讲解题目描述有一个单词清单,请设计一个高效算法,计算由清单中单词组成的最大子矩阵,要求矩阵中的行和列都是清单中的单词。给定一个string数组dic,代表单词清单,同时给定清单的大小n,请返回最大子矩阵的面积。保证单词清单的大小小于等于50,且某一长度的串的数量小于等于1原创 2017-05-02 21:18:46 · 659 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----最大和子矩阵
时间限制:3秒 空间限制:32768K 热度指数:443本题知识点: 动态规划 算法知识视频讲解题目描述有一个正整数和负整数组成的NxN矩阵,请编写代码找出元素总和最大的子矩阵。请尝试使用一个高效算法。给定一个int矩阵mat和矩阵的阶数n,请返回元素总和最大的子矩阵的元素之和。保证元素绝对值小于等于100000,且矩阵阶数小于等于200。测试样例:[[原创 2017-05-02 21:39:48 · 485 阅读 · 0 评论 -
《Cracking the Coding Interview程序员面试金典》----原串翻转
时间限制:3秒 空间限制:32768K 热度指数:7641本题知识点: 编程基础 字符串 算法知识视频讲解题目描述请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。测试样例:"This原创 2017-04-18 21:32:01 · 543 阅读 · 0 评论