摘要: // 面试题59(二):队列的最大值 // 题目:请定义一个队列并实现函数max得到队列里的最大值, // 要求函数max、push_back和pop_front的时间复杂度都是O(1) #include <cstdio> #include <deque> #include <exception> 阅读全文
posted @ 2020-04-08 23:50 源周率 阅读(145) 评论(0) 推荐(0) 编辑
摘要: // 面试题59(一):滑动窗口的最大值 // 题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如, // 如果输入数组{2, 3, 4, 2, 6, 2, 5, 1}及滑动窗口的大小3,那么一共存在6个 // 滑动窗口,它们的最大值分别为{4, 4, 6, 6, 6, 5}, 阅读全文
posted @ 2020-04-08 23:41 源周率 阅读(159) 评论(0) 推荐(0) 编辑
摘要: // 面试题58(二):左旋转字符串 // 题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 // 请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数 // 字2,该函数将返回左旋转2位得到的结果"cdefgab"。 #include <cstdio 阅读全文
posted @ 2020-04-08 22:06 源周率 阅读(125) 评论(0) 推荐(0) 编辑
摘要: // 面试题58(一):翻转单词顺序 // 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 // 为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ", // 则输出"student. a am I"。 #include <cstdio> 阅读全文
posted @ 2020-04-08 18:53 源周率 阅读(161) 评论(0) 推荐(0) 编辑
摘要: // 面试题57(二):为s的连续正数序列 // 题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。 // 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、 // 4~6和7~8。 #include <cstdio> void 阅读全文
posted @ 2020-04-08 17:06 源周率 阅读(240) 评论(0) 推荐(0) 编辑
摘要: // 面试题57(一):和为s的两个数字 // 题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们 // 的和正好是s。如果有多对数字的和等于s,输出任意一对即可。 #include <cstdio> bool FindNumbersWithSum(int data[], int 阅读全文
posted @ 2020-04-08 16:45 源周率 阅读(208) 评论(0) 推荐(0) 编辑
摘要: // 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请 // 找出那个吃出现一次的数字。 #include <cstdio> #include <exception> int FindNumberAppearingOnce(i 阅读全文
posted @ 2020-04-08 15:52 源周率 阅读(157) 评论(0) 推荐(0) 编辑
摘要: // 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序 // 找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 #include <cstdio> unsigned int FindFirstBit 阅读全文
posted @ 2020-04-08 10:59 源周率 阅读(156) 评论(0) 推荐(0) 编辑