算法
文章平均质量分 70
stonetudou
这个作者很懒,什么都没留下…
展开
-
java 求二叉树中节点的最大距离.
如果我们把二叉树看成一个图, 父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数。 写一个程序, 求一棵二叉树中相距最远的两个节点之间的距离public class MaxDistance { static int MaxLen=0; public void FindMaxLen(Node pRoot){ if(pRoo转载 2012-10-14 23:31:51 · 3996 阅读 · 0 评论 -
【java 面试100】19.Fibonacci
矩阵的方法没懂public class Fibonacci { public static int fibonacci(int n){ int a=0; int b=1; if(n==1)return 1; int m=n/2; for(int i=0;i<m;i++){ a=a+b; b=a+b; } return 2*m==n?a:b; }转载 2012-10-15 23:12:58 · 750 阅读 · 0 评论 -
【java 面试100】20.输入一个表示整数的字符串,把该字符串转换成整数并输出
(思路参照july博客,用java重新实现)输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345public class Atoi { public int atoi(String str){ int neg=0; int i=0; if(str.charAt(i)=='-'){ i++; neg=1; }els转载 2012-10-15 23:40:13 · 4755 阅读 · 0 评论 -
【java 面试100】18.约瑟夫循环问题
题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。方法一:设置数组,循环计数到m将其删除,删除n-1个后剩的数就是所求。可以用boolean数组,也可以用int数组置零(joseph2)转载 2012-10-15 20:11:09 · 570 阅读 · 0 评论 -
【java 面试100】16输入一颗二元树,从上往下按层打印树的每个结点
题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入 8 / / 6 10/ / / /5 7 9 11输出8 6 10 5 7 9 11。使用队列,二叉树的广度优先遍历public class PrintByLevel { public void printByLevel(BSTr转载 2012-10-15 11:55:00 · 417 阅读 · 0 评论 -
【java 面试100】15 :输入一颗二元查找树,将该树转换为它的镜像
题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / / 6 10 // //5 7 9 11输出: 8 / / 10 6 // //11 9 7 5public class MirrorBST { pu转载 2012-10-15 11:08:09 · 493 阅读 · 0 评论 -
【java 面试100】14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字
(思路参照july博客,本人习惯java顾用java重新实现)题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。1、 2、 4、7、11、15原创 2012-10-15 10:34:13 · 2396 阅读 · 0 评论 -
java 单词翻转
I am a student 中国中国 student a am I 先将每个单词反转,再将整体字符串反转public class ReverseWords { private static String word; public ReverseWords(String str){ this.word=str; } public void reverse(){ int转载 2012-10-14 22:25:21 · 2668 阅读 · 1 评论 -
java 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / / 6 10/ / / /5 7 9 11因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。最后原创 2012-10-14 21:50:16 · 1294 阅读 · 0 评论 -
[java 面试100道]13.输入一个单向链表,输出该链表中倒数第k个结点。
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: class ListNode{ int key; ListNode next; public ListNode(int key){ this.key=key; }}public class LastK { public ListNode getLastK(Lis转载 2012-10-15 09:56:58 · 2759 阅读 · 0 评论 -
java 面试100道题目12:求1+2+…+n
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。由于java的一些原因,用!!n或构造函数不能解决。public class SumN { int sum=0; public boolean Getsum(int n){ sum+=n; return (n-1<=0)||原创 2012-10-15 09:13:21 · 879 阅读 · 0 评论 -
(java)求前n个质数
求1-n的质数public class Prime { public static boolean isPrime(int n){ if(n==1)return false; for(int i=2;i<=n/2;i++){ if(n%i==0) return false; } return true; } public static void printPrime原创 2012-10-18 19:20:59 · 4027 阅读 · 0 评论