摘要:
// 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度。假设字符串中只包含从'a'到'z'的字符。 #include <string> #include <iostream> // 方法一:蛮力法 bool ha 阅读全文
摘要:
// 面试题47:礼物的最大价值 // 题目:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值 // (价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或 // 者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计 // 算你最多能拿到多少价值的礼物? 阅读全文
摘要:
// 面试题46:把数字翻译成字符串 // 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻 // 译成"b",……,11翻译成"l",……,25翻译成"z"。一个数字可能有多个翻译。例 // 如12258有5种不同的翻译,它们分别是"bccfi"、"bwfi"、"bczi 阅读全文
摘要:
// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个。例如输入数组{3, 32, 321},则打印出这3个数 // 字能排成的最小数字321323。 #include "cstdio" #include 阅读全文
摘要:
// 面试题44:数字序列中某一位的数字 // 题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这 // 个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一 // 个函数求任意位对应的数字。 #include <iostream> 阅读全文
摘要:
// 面试题43:从1到n整数中1出现的次数 // 题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如 // 输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。 #include <cstdio> #include <cstring> #i 阅读全文
摘要:
// 面试题42:连续子数组的最大和 // 题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整 // 数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 #include <cstdio> bool g_InvalidInput = false; int Fi 阅读全文
摘要:
// 面试题41:数据流中的中位数 // 题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么 // 中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值, // 那么中位数就是所有数值排序之后中间两个数的平均值。 #include <cstdio> #inclu 阅读全文
摘要:
// 面试题40:最小的k个数 // 题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8 // 这8个数字,则最小的4个数字是1、2、3、4。 #include <cstdio> #include "Array.h" #include <set> #include <v 阅读全文
摘要:
// 面试题39:数组中出现次数超过一半的数字 // 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例 // 如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中 // 出现了5次,超过数组长度的一半,因此输出2。 #include 阅读全文