自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 在从1到n的正数中1出现的次数

<br />题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题。用最直观的方法求解并不是很难,但遗憾的是效率不是很高;而要得出一个效率较高的算法,需要比较强的分析能力,并不是件很容易的事情。当然,google的面试题中简单的也没有几道。首先我们来看最直观的方法,分别求得1到n中每个整数中1出现的次数。而求一个整数的十进制表示中1出现的次数,就和本

2011-04-23 01:03:00 716

原创 输出1到最大的N位数

<br />题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。<br />分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。<br />应聘者在解决这个问题的时候,最容易想到的方法是先求出最大的n位数是什么,然后用一个循环从1开始逐个输出。很快,我们就能写出如下代码:<br />// Print numbers from 1 to the maximum number with n digits, in order<br />vo

2011-04-23 00:24:00 2682 3

原创 把数组排成最小的数

题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。<br />分析:这是09年6月份百度新鲜出炉的一道面试题,从这道题我们可以看出百度对应聘者在算法方面有很高的要求。<br />这道题其实是希望我们能找到一个排序规则,根据这个规则排出来的数组能排成一个最小的数字。要确定排序规则,就得比较两个数字,也就是给出两个数字m和n,我们需要确定一个规则m和n哪个更大,而不是

2011-04-22 22:47:00 678

原创 对称子字符串的最大长度

<br />题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。<br />分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的加强版。<br />要判断一个字符串是不是对称的,不是一件很难的事情。我们可以先得到字符串首尾两个字符,判断是不是相等。如果不相等,那该字符串肯定不是对称的。否则我们接着判断里面的两个字符是不是相等,以此类推。基于这个思路,我们不难写出如下代码:<br

2011-04-22 22:43:00 875

原创 数组中出现次数超过一半的数字

<br /><br />题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。<br />分析:这是一道广为流传的面试题,包括百度、微软和Google在内的多家公司都曾经采用过这个题目。要几十分钟的时间里很好地解答这道题,除了较好的编程能力之外,还需要较快的反应和较强的逻辑思维能力。<br />看到这道题,我们马上就会想到,要是这个数组是排序的数组就好了。如果是排序的数组,那么我们只要遍历一次就可以统计出每个数字出现的次数,这样也就能找出符合要求的数字了。题目给出的数组没有说是排好序的,因此我

2011-04-22 22:00:00 523

原创 第一个只出现一次的字符

<br />题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。<br />分析:这道题是2006年google的一道笔试题。<br />看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路时间复杂度是O(n2)。我们试着去找一个更快的方法。<br />由于题目与字符出现的次数相关

2011-04-22 21:43:00 433

原创 旋转向量

  向量旋转问题: 给定一个 n 维向量, 求 将它向左循环移动 i 位后的向量。比如: [1,2,3,4,5] 向左循环移动 3 位后,变成 [4,5,1,2,3] 。为了简单起见,向量采用数组表示。           本文讨论的内容参见《编程珠玑 I 》 ( 第二版 ) 的第二章。在那里,讨论了向量旋转的四种算法:           1. 基于数组移动的思路: 这个是比较简单的, 即将要移动的 i 个元素复制到一个临时数组中,然后,将原数组的 n-i 个元素依次复制到前 n-i 个位置上,最后,将临

2011-04-22 00:14:00 2110

百度搜索引擎指南(guide)

最新的百度搜索引擎技术,里面内容很强大,很好,我觉得说的都是一些百度未来的展望啊,发展方向

2011-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除