随笔分类 - 面试题库
摘要:最近是校园招聘的黄金时期,各大公司的笔试题公诸于网上,身为码农,怎能不关注呢。除了选择题和理论题,我都是随便扫一下。因为选择可以靠运气,理论可以靠笔试前复习准备,就剩下编程题可以消遣下。但一个人玩玩题目又有点太无聊了,所以我想出个英雄帖,欢迎大家一起来写效率最高,代码最优美的代码~~当然玩程序的同时,如果大家有工作意向的话,我可以帮忙推荐简历到我公司。也欢迎大家给我提供题目,今天我选个网易2012校园招聘的笔试题,虽然不是我出的,实现也不难,关键在怎么写的好看。我会持续更新,到时也欢迎大家斧正。实现程序,打印出以下的序列。(a),(b),(c),(d),(e)........(z)(a,b),
阅读全文
摘要:积木,小时候大家应该都玩过吧,一些简单的积木堆积起来就能组成各种新奇好玩的形状,但不知你有没尝试过用多种组合方法堆成相同的形状。这里,我们就有这样一个谜题,给出9*9方格,用1*2 的积木和L形(2*2 的去掉一个角)的积木填充,求填充满9*9方格的不重复方案数。解法一这样的问题到手,初看似乎没有一点头绪,是用数学的方法的推导?当然,这个是可以有,但推导过程也是艰辛无比。在这,要提一下动态规划的好处,它能归纳出状态转移公式,再根据公式,利用计算机高速的计算能力来帮我们推算出最后的结果。首先,我们先来解决状态的表示问题。可以用二进制来表示积木的形状。图1 所有形状的积木积木总类不多,所有形状也就
阅读全文
摘要:给定一个十进制正整数,从1开始到的所有整数,计算每个数各个位的数字总和。例如:N=4,则1+2+3+4=10。N=14,则1+2+3+4+5+6+7+8+9+(1+0)+(1+1)+(1+2)+(1+3)+(1+4)=60。int sum_digital(int N){ int sum = 0; for (int i = 1; i <= N; i ++) { for (int j = i; j; j /= 10) sum += j%10; } return sum;}代码清单1这样暴力的方法让人提不起任何兴趣,我们来点有挑战性的,假设N和sum都不会超过int整型数值范围,我们提出两个扩
阅读全文
摘要:奉献几篇很早前写给朋友的稿子,后来由于其它原因无法出版就压了箱底。今天拿出来晒晒太阳,看官觉得能入眼的话,就看看吧~寻找包含给定字符集合的最小子串现代的信息处理中,计算机发挥着极其重要的作用。而信息主要以字符串的形式显示在我们面前,所以对字符串的处理在程序领域中有很多的研究,我们在程序中也常会用到字符串和它的相关算法。想想小学的时候,老师布置的词组造句的作业,我们能否写个程序自动帮老师去判断呢?我们将这个问题抽象出来:给定一个字符串和一个字符集合,判断字符集合是否都在字符串中出现过;同时再求该字符串的最小子串(子串的长度最小,长度一样时取字典序最小),使得这个子串同样包含字符集合中的所有元素,
阅读全文
摘要:题目内容 百度搜索框的suggestion,比如输入北京,搜索框下面会以北京为前缀,展示“北京爱情故事”、“北京公交”、“北京医院”等等搜索词。如何设计使得空间和时间复杂度尽量低。题目分析在字符串集合S中,找出相同前缀P的字符串。设size(S) = N,查询次数为M。1.朴素方案朴素得,每次查询时,遍历整个字符串集合,比较每个字符串的前缀。时间复杂度T(N*len(P)) = O(N),这里的len(P)是一个常数值,所以不会对大O造成影响,参见扩展阅读[1]。那总的时间复杂度就是O(MN),不使用额外空间,则空间复杂度为O(1)。1 for Si in S:2 if prefix(...
阅读全文

浙公网安备 33010602011771号