02 2017 档案

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