摘要: 面试48题:题目:最长不含重复字符的子字符串 题:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长字符串的长度。假设字符串中只包含‘a’-‘z’的字符。例如,在字符串“arabcacfr”中,最长的不含重复字符的子字符串是“acfr”,长度为4。 解题代码一: 阅读全文
posted @ 2018-06-25 21:23 Fintech带你飞 阅读(796) 评论(0) 推荐(0)
摘要: 面试47题:题:礼物的最大价值 题目:在一个mxn的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0),你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿多少价值的礼物? 解题思路:这是一个典型的能用动 阅读全文
posted @ 2018-06-25 20:22 Fintech带你飞 阅读(875) 评论(0) 推荐(0)
摘要: 面试45题: 题:把数组排成最小的数 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路一:暴力破解:先求所有数字的全排列,然后求最小值 解题代码: 解题代码 阅读全文
posted @ 2018-06-25 16:46 Fintech带你飞 阅读(1087) 评论(0) 推荐(0)
摘要: 面试43题: 题目:1~n整数中1出现的次数 题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1的数字有1,10,11,12一共出现了5次。 解题思路一:直接累加1~n中每个整数中1出现的次数。 解题代码一: 解题思路二:同上,只不过先把1~n 阅读全文
posted @ 2018-06-25 15:38 Fintech带你飞 阅读(933) 评论(0) 推荐(0)
摘要: 面试42题: 题目:连续子数组的最大和 题:输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n) 解题思路:在数组里从前向后遍历,记录下每次的“当前累加子数组和”和“当前的最大子数组和”(其本身包含“动态规划”的思想,详 阅读全文
posted @ 2018-06-25 14:45 Fintech带你飞 阅读(974) 评论(0) 推荐(0)
摘要: 面试41题: 题目:数据流中的中位数 题:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 解题思路一:直接法,排序后求中位数 解题代码: 解题思路二:使用最大堆 阅读全文
posted @ 2018-06-25 14:27 Fintech带你飞 阅读(763) 评论(0) 推荐(0)
摘要: 面试40题: 题目:最小的k个数 题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 解题代码一: 解题代码二: 解题代码三:另:自己实现快速排序 阅读全文
posted @ 2018-06-25 09:59 Fintech带你飞 阅读(1182) 评论(0) 推荐(0)
摘要: 面试39题: 题目:数组中出现次数超过一半的数字 题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题思路:根据数组特点找出时间复杂 阅读全文
posted @ 2018-06-25 09:34 Fintech带你飞 阅读(1077) 评论(0) 推荐(0)