程序员面试题精选100题(60)-判断二叉树是不是平衡的

题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 [code] int getHeight(Node node){ if(node==null){ return 0; } ...

2011-07-24 15:33:48

阅读数 22

评论数 0

程序员面试题精选100题(58)-八皇后问题

题目:在8×8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处在同一行、同一列或者同一对角斜线上。下图中的每个黑色格子表示一个皇后,这就是一种符合条件的摆放方法。请求出总共有多少种摆法。 [img]http://dl.iteye.com/upload/picture/pic/...

2011-07-24 12:22:48

阅读数 13

评论数 0

程序员面试题精选100题(57)-O(n)时间的排序

题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。 由于年龄总共只有几十种可能,我们可以很方便地统计出每一个年龄里有多少名员工。举个简单的例子,假设总共有5个员工,他们的年龄分别是25、24、26、24、25。我们统计出他们的年...

2011-07-24 12:02:26

阅读数 17

评论数 0

程序员面试题精选100题(55)-不用+、-、×、÷数字运算符做加法

题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。 用位运算:1.使用半加运算,计算出不进位相加的结果 2.只有两个1在一起才会进位,那么确定哪些位置有两个1,然后移位,再进行不进位相加; 循环进行不进位相加。。。。。 [code...

2011-07-24 11:15:02

阅读数 19

评论数 0

程序员面试题精选100题(51)-顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 ...

2011-07-24 09:35:27

阅读数 16

评论数 0

程序员面试题精选100题(50)-树为另一树的子结构

题目:二叉树的结点定义如下: struct TreeNode { int m_nValue; TreeNode* m_pLeft; TreeNode* m_pRight; }; 输入两棵二叉树A和B,判断树B是不是A的子结构。 ...

2011-07-23 20:24:21

阅读数 16

评论数 0

程序员面试题精选100题(49)-复杂链表的复制

题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下: struct ComplexNode { int m_nValue; Compl...

2011-07-23 19:49:11

阅读数 12

评论数 0

程序员面试题精选100题(48)-二叉树两个结点的最低共同父结点

题目:二叉树的结点定义如下: struct TreeNode { int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight; }; 输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。 分析:求...

2011-07-21 19:17:52

阅读数 18

评论数 0

程序员面试题精选100题(47)-数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 太简单了。。。。 HashMap key=数, value=次数

2011-07-21 18:56:44

阅读数 11

评论数 0

程序员面试题精选100题(46)-对称子字符串的最大长度

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 思路,把每个都看成是对称中心,然后向外扩展。。 [code] int GetLongestSymmetricalLength_2(c...

2011-07-21 18:46:08

阅读数 21

评论数 0

程序员面试题精选100题(45)-Singleton

不说了。。。见设计模式

2011-07-21 18:38:26

阅读数 9

评论数 0

程序员面试题精选100题(44)-数值的整数次方

题目:实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。 不明白就看这个网址: http://zhedahht.blog.163.com/blog/static/2541117420091015632...

2011-07-19 22:22:13

阅读数 11

评论数 0

程序员面试题精选100题(43)-n个骰子的点数

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。 用一个HashMap,把所有计算的和都存进去,如果出现多次,那么对应的value++;那么我们就可以知道每个值到此出现了多少次;可以使用递归来做 [code] Map p = new H...

2011-07-19 20:02:20

阅读数 32

评论数 0

程序员面试题精选100题(42)-旋转数组的最小元素

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。 不说了。。...

2011-07-19 18:56:44

阅读数 13

评论数 0

svn命令

svn命令 通常都有帮助,可通过如下方式查询: $ svn help 知道了子命令,但是不知道子命令的用法,还可以查询: $ svn help add 开发人员常用命令 (1) 导入项目 $ cd ~/project $ mkdir -p svntest/{t...

2011-07-18 19:34:38

阅读数 12

评论数 0

程序员面试题精选100题(41)-把数组排成最小的数

题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 这个题目就是把数组排序而已,排序规则是先比较第一位,第一位小的在前面,第一位相同则比较第二位,...

2011-07-17 23:35:38

阅读数 14

评论数 0

程序员面试题精选100题(38)-输出1到最大的N位数

题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。 此题考的是内存溢出问题的解决方案 000 ,001,002,...010...,999 [code] char[] num = new char[n]; ...

2011-07-17 22:49:18

阅读数 18

评论数 0

程序员面试题精选100题(37)-寻找丑数

题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。 思路: 只计算丑数,而不在非丑数的整数上花费时间。根据丑数的定义,丑数应该是另一个丑数乘以2、...

2011-07-17 22:15:03

阅读数 21

评论数 0

程序员面试题精选100题(36)-在字符串中删除特定的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 事实上,我们并不需要在每次删除一个字符的时候都去移动后面所有的字符。我们可以设想,当一个字符需要...

2011-07-17 21:17:08

阅读数 10

评论数 0

程序员面试题精选100题(35)-找出两个链表的第一个公共结点

题目:两个单向链表,找出它们的第一个公共结点。 两个链表如果不一样长,就造成他们一样长,然后再同步前进,前进一次比较一次即可 先让长的那个链表先往前走,然后再同步向前...

2011-07-17 20:32:12

阅读数 13

评论数 0

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