九章算法的博客

定期发布IT面试题、答案、面经。

原创 九章算法面试题72 翻转链表I

给一个链表,然后我们要把这个链表进行翻转。

2015-05-29 02:41:06

阅读数 914

评论数 1

原创 九章算法面试题71 平方根

给定一个数,怎么样不用系统函数sqrt,可以求得它的平方根的答案。

2015-05-29 02:35:44

阅读数 1109

评论数 0

原创 16个behavior question 的面试官解析及tips(上)

除了技术面试,behavior interview也是程序员拿到offer必经的一道关口。九章算法总结了16个常见的behavior question,并解析面试官想通过这些问题考察的内容,指出需要避免的“坑”,并提供了一些小建议。希望对大家找工作有帮助。

2015-05-26 13:38:44

阅读数 8176

评论数 1

原创 九章算法面试题70 排颜色II sort colors

给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,...k的顺序进行排序。

2015-05-18 05:54:37

阅读数 3150

评论数 0

原创 九章算法面试题69 排颜色 sort colors

给一个数组,并且数组里面元素的值只可能是0,1,2,然后现在把这个数组排序。

2015-05-15 02:49:28

阅读数 1277

评论数 0

翻译 系统设计面些啥?Palantir 面官教你如何准备系统设计面试!

系统设计面些啥?Palantir 面官教你如何准备系统设计面试!

2015-05-13 02:55:09

阅读数 3157

评论数 0

转载 【系统设计】短URL系统是怎么设计的?

问题 新浪微博那种输入完全url转换为短url是怎么设计的? 解答 这个问题看到就想答。 个人相关:三年前在公司做过一个短地址服务,目前在线上跑。 而这个问题,也是我现在招聘面试题里面必考的一道,这一道题里面有很多可考的地方,能够相对综合的考察候选人的功力。 ...

2015-05-13 02:51:19

阅读数 1440

评论数 0

原创 程序员不得不知道的技术面试资料大全

妈妈说他什么都好,就不该是个程序员。

2015-05-13 02:49:12

阅读数 2907

评论数 1

原创 九章算法面试题68 4 sum

给一堆数组和一个目标值,在这堆数组里面找出四个数使得他们的和等于目标值。

2015-05-13 02:32:36

阅读数 1043

评论数 0

原创 九章算法面试题67 3 sum

给一堆数组和一个目标值,在这堆数组里面找出三个数使得他们的和等于目标值。

2015-05-13 02:29:14

阅读数 678

评论数 0

原创 九章算法面试题66 2 sum

给一堆数组和一个目标值,在这堆数组里面找出两个数使得他们的和等于目标值。

2015-05-13 02:29:04

阅读数 724

评论数 0

原创 九章算法面试题65 拓扑排序

给一个有向无环图,求出这个有向无环图的拓扑排序结果。

2015-05-13 02:26:50

阅读数 934

评论数 0

原创 九章算法面试题64 找第k大的特殊数

有一种特殊的数,它的素数因子只有可能是3,5,7,不可能是其他的素数, 我们把这种数从小到大排序,得到3,5, 7, 9, 15 ... 现在我们要求其中第K大得数是多少,比如其中第4大的数是9。

2015-05-13 02:24:56

阅读数 688

评论数 0

原创 九章算法面试题63 快速幂

计算(a^n)%b,其中a,b和n都是32位的整数。 例如 (2^31)%3 = 2。

2015-05-13 02:22:58

阅读数 884

评论数 0

原创 九章算法面试题62 合并k个排序数组

给出K个排序好的数组,用什么方法可以最快的把他们合并成为一个排序数组?

2015-05-13 02:20:55

阅读数 1559

评论数 0

原创 九章算法面试题61 克隆图

给出一个图,并且给出图的起始节点,知道这个图的节点的定义,要求克隆这个图,返回克隆图的起始节点。

2015-05-13 02:17:15

阅读数 655

评论数 0

原创 九章算法面试题60 爬楼梯

有n层的台阶,一开始你站在第0层,每次可以爬两层或者一层。请问爬到第n层有多少种不同的方法?

2015-05-13 02:14:00

阅读数 1052

评论数 0

原创 九章算法面试题59 背包问题II

有一个大小为m(整数)的背包,和n个体积(大小分别为A[i](整数))和价值(价格分别为B[i](整数))的物品。将这n个物品选一些装到背包中,请问能装价值最大为多少的物品?

2015-05-13 02:12:04

阅读数 960

评论数 0

原创 九章算法面试题58 背包问题

有一个大小为m(整数)的背包,和n个体积为正整数的物品(大小分别为A[i])。将这个n个物品选一些装到背包中,请问最多能装满多少的体积?

2015-05-13 02:07:41

阅读数 744

评论数 0

原创 九章算法面试题57 拷贝带随机指针的链表结构

给出一条带随机指针的链表,对其进行深度拷贝(Deep Copy)。

2015-05-13 02:04:36

阅读数 556

评论数 0

原创 九章算法面试题56 最近公共祖先

给出一棵二叉树和两个二叉树上的节点,求出这两个点的最近公共祖先(Lowest Common Ancestor, LCA)。

2015-05-13 02:04:03

阅读数 567

评论数 0

原创 九章算法面试题55 旋转字符串

给一个字符串和一个旋转的偏移量offset,将字符串循环右移offset位。 如:"abcdefg" 循环右移 4位之后变为了:"defgabc" 要求做到O(1)的额外空间耗费,O(n)的时间

2015-05-13 02:01:28

阅读数 500

评论数 0

原创 九章算法面试题54 带重复元素的全排列

给定一个带重复元素的整数集合,求出这个集合中所有元素的全排列。

2015-05-13 01:55:57

阅读数 967

评论数 0

原创 九章算法面试题53 第一个出错的代码版本

在早期的svn代码控制器中,代码版本的编号是从1开始累加的。有一天你提交了一个带BUG的代码到代码库中,使得这个版本上的单元测试(Unit Tests)失败了。而正不巧由于为此代码库贡献代码的每个人的工作都比较独立,你又休假去了,于是没有人去修复这个bug,这导致了从某个版本开始,后面的每个版本的...

2015-05-13 01:53:14

阅读数 731

评论数 0

原创 九章算法面试题52 数数字

数一数在0到n之间有多少个数字k(0<=k<=9)。如n=12时,[0,1,2...,12]之间一共有5个1。分别包含在[1, 10, 11, 12]之中。

2015-05-13 01:49:16

阅读数 503

评论数 0

原创 九章算法面试题51 二叉树的序列化

设计一个算法,序列化和反序列化一棵二叉树。

2015-05-13 01:46:30

阅读数 588

评论数 0

原创 九章算法面试题50 队列上实现Min函数

​在《九章算法面试题23 栈上实现Min函数》中,我们介绍了在栈上实现一个O(1)的Min方法。那么,如何在队列上实现一个Min方法? 要求,队列除了支持基本的Push(x) Pop()的方法以外,还需要支持Min方法,返回当前队列中的最小元素。每个方法的均摊复杂度为O(1)

2015-05-13 01:44:17

阅读数 720

评论数 0

原创 九章算法面试题49 用栈实现队列

规定你只能使用数据结构栈(支持pop, push),怎么样用栈来模拟一个队列的pop和push?

2015-05-13 01:43:46

阅读数 497

评论数 0

原创 九章算法面试题48 分割回文串

对于给定字符串,求最少需要几次划分,能够将字符串划分为若干子串,每个子串都是一个回文串。如abaab,需要至少1次划分,将字符串划分为:a|baab,每个部分均为回文串。

2015-05-13 01:39:01

阅读数 841

评论数 0

原创 九章算法面试题47 分糖果

N个孩子站成一排,每个人分给一个权重。按照如下的规则分配糖果: 每个孩子至少有一个糖果权重较高的孩子,会比他的邻居获得更多的糖果。 问题是,最少需要多少个糖果?

2015-05-13 01:36:42

阅读数 1194

评论数 0

原创 九章算法面试题46 正负交替

给一个包含正负整数的数组,要求对这个数组中的数进行重新排列,使得其正负交替出现。首先出现负数,然后是正数,然后是负数。有多余的数的一方,就放在末尾。 如 [1, 2, 3, -4]->[-4, 1, 2, 3],[1,-3,2,-4,-5]->[-3,1,-4,2,-5] 要求使用O(...

2015-05-13 01:36:26

阅读数 824

评论数 0

原创 九章算法面试题45 寻找最大的储水容器

给定一个正整数数组(a0,a1..),分别代表n个坐标(0,a0), (1,a1),根据这n个点画出n条线段,每条线段的两个端点分别为(i, ai)和(i, 0)。找到两条线段,使得这两条线段和x轴所构成的容器储水容量最大。如[2,1,3], 最大,选择第一条线段和第三条线段,加上x轴所构成的容器...

2015-05-13 01:34:07

阅读数 790

评论数 0

原创 九章算法面试题44 设计一个Web Crawler

如果让你来设计一个最基本的Web Crawler,该如何设计?需要考虑的因素有哪些?

2015-05-13 01:31:00

阅读数 1963

评论数 0

原创 九章算法面试题43 直方图内最大矩阵

给出一个直方图(如图所示),求出所给直方图中所包含的最大矩阵面积。

2015-05-12 15:32:34

阅读数 1015

评论数 0

原创 九章算法面试题42 构造MaxTree

给定一个没有重复元素的数组A,定义A上的MaxTree如下:MaxTree的根节点为A中最大的数,根节点的左子树为数组中最大数左边部分的MaxTree,右子树为数组中最大数右边部分的MaxTree。请根据给定的数组A,设计一个算法构造这个数组的MaxTree。

2015-05-12 15:32:28

阅读数 1364

评论数 0

原创 九章算法面试题41 判断单词的包含关系

给定两个单词A和B(假设均为小写字母,并且不含重复字母),判断A是否包含B。这里所定义的包含,只需要包含所有的字母即可,不要字母之间的顺序和邻接关系。要求想出尽可能多的方法(不限制复杂度)

2015-05-12 15:26:51

阅读数 663

评论数 0

原创 九章算法面试题40 不用除法求积

给定一个数组A[1..n],求数组B[1..n],使得B[i] = A[1] * A[2] .. * A[i-1] * A[i+1] .. * A[n]。要求不要使用除法,且在O(n)的时间内完成,使用O(1)的额外空间(不包含B数组所占空间)。

2015-05-12 14:57:13

阅读数 963

评论数 0

原创 九章算法面试题39 分割数组

给一个数组A,和一个整数k,将数组分成两个部分(你可以移动数组中的数),使得左边部分的数都<k,右边部分的数都>=k。要求使用O(1)的额外空间,和O(n)的时间。

2015-05-12 14:53:12

阅读数 643

评论数 0

原创 九章算法面试题38 洗牌的技巧

有一副扑克有2n张牌,用1,2,..2*n代表每一张牌,一次洗牌会把牌分成两堆,1,2..n和n+1...2n。然后再交叉的洗在一起:n+1, 1, n+2, 2, … n, 2n。问按照这种技巧洗牌,洗多少次能够洗回扑克最初的状态:1,2,...2n。

2015-05-12 14:52:56

阅读数 624

评论数 0

原创 九章算法面试题37 主元素

主元素(Majority Number)定义为数组中出现次数严格超过一半的数。找到这个数。要求使用O(1)的额外空间和O(n)的时间。 进阶1:如果数组中存在且只存在一个出现次数严格超过1/3的数,找到这个数。要求使用O(1)的额外空间和O(n)的时间。 进阶2:如果数组中存在且只存在一个出现次数...

2015-05-12 14:48:34

阅读数 678

评论数 0

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