随笔分类 - 笔试题(算法题)
摘要:题目描述:题目:含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如(321,3,32,) 最小数为321323 题目分析: 将数组中所有元素填充到个数相等,填充的数字为最后一位的数字,如这个case所示,填充之后为{321,333,322},然后按大小排序, 排序之后将填充的数字去掉,
阅读全文
摘要:问题描述: A,B两个整数集合,设计一个算法求他们的交集,尽可能高效。 问题分析: 用哈希表,遍历集合A,构造一个哈希表,在遍历集合B,从哈希表中查询,如果存在即保存该元素。 时间复杂度O(n+m) (n,m分别是A,B集合长度) Python求解查找出现一次字符问题(2016奇虎笔试题) Pyth
阅读全文
摘要:题目描述: 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。 请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 解题思路 这道题看上去感觉挺简单,最简单的方法就是分别算出每个红包金额出现次数,再找出出现次数过
阅读全文
摘要:问题描述:一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。 例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAAB
阅读全文
摘要:题目描述:任意数分三组,使得每组的和尽量相等 思路分析:看完题目稍作分析的后,想不到用什么算法解决这个问题,于是思路如其他人一样。 先排序,初始化三个空数组,每次从给出的数组中拿一个最大值放到项数和最小的数组中。 python实现 这里比较简单的直接求分组的项数和,并没有求出分组的情况。 而上网查了
阅读全文
摘要:问题描述:给出10w条人和人之间的朋友关系,求出这些朋友关系中有多少个朋友圈 样例A-B、B-C、D-E、E-F ,这四对关系中存在2个朋友圈 解题思路:并查集,而题目只需要求出朋友圈数量,并不需要求出各朋友圈,所以该并查集的实现也可以非常简单。 A-B,就把father[B] = A,处理每条朋友
阅读全文
摘要:问题描述:一位酒商共有5桶葡萄酒和1桶啤酒,6个桶的容量分别为30升、32升、36升、38升、40升和62升,并且只卖整桶酒,不零卖。第一位顾客买走了2整桶葡萄酒,第二位顾客买走的葡萄酒是第一位顾客的2倍。那么,本来有多少升啤酒呢?解析:由于该酒商只卖整桶酒,简单分析几个桶的容量可知,第二位顾客必须
阅读全文
摘要:问题:假设一段楼梯共15个台阶,小明一步最多能上3个台阶,那么小明上这段楼梯一共有多少种方法? 解析:从第15个台阶上往回看,有3种方法可以上来(从第14个台阶上一步迈1个台阶上来,从第13个台阶上一步迈2个台阶上来,从第12个台阶上一步迈3个台阶上来),同理,第14个、13个、12个台阶都可以这样
阅读全文
摘要:问题描述:用十进制计算30的阶乘,然后把结果转换成三进制表示,那么该进制表示的结果末尾会有多少个连续0?解析:作为笔试题的话,要想按照题意先把阶乘结果计算出来再转换成三进制最后再数0的个数,时间肯定来不及。也就是说,应该是有更简单的方法。以我们最熟悉的十进制为例,一个数乘以10相当于左移1位而右边补
阅读全文

浙公网安备 33010602011771号