微软等面试100题
bylijinnan
这个作者很懒,什么都没留下…
展开
-
java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句...
借鉴网上的思路,用java实现:[code="java"]public class NoIfWhile { /** * @param args * * find x=1+2+3+....n */ public static void main(String[] args) { int n=10; int re=find(n);...2011-12-13 21:42:03 · 316 阅读 · 2 评论 -
java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
思路来自:[url]http://zhedahht.blog.163.com/blog/static/25411174201011445550396/[/url][code="java"]import ljn.help.*;public class HasSubtree { /**Q50. * 输入两棵二叉树A和B,判断树B是不是A的子结构。例如,下图中的两棵树A...2012-02-10 23:26:58 · 103 阅读 · 0 评论 -
java-17-在一个字符串中找到第一个只出现一次的字符
[code="java"]public class FirstShowOnlyOnceElement { /**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b * 1.int[] count:count[i]表示i对应字符出现的次数 * 2.将26个英文字母映射:a-z 0-25 * 3.假设全部字母都是小写 */...2012-02-11 10:04:03 · 152 阅读 · 0 评论 -
java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
[code="java"]public class OcuppyMoreThanHalf { /** * Q74 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字 * two solutions: * 1.O(n) * see --每次删除两个不同的数字,不改变数组的特性 * 2.O(nlogn) * 排序。中间那个元素就是所求 ...2012-02-11 10:56:27 · 233 阅读 · 0 评论 -
java-75-二叉树两结点的最低共同父结点
[code="java"]import java.util.LinkedList;import java.util.List;import ljn.help.*;public class BTreeLowestParentOfTwoNodes { public static void main(String[] args) { /* * node data...2012-02-27 11:27:54 · 250 阅读 · 0 评论 -
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
[code="java"]public class LongestSymmtricalLength { /* * Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。 * 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 */ public static void main(String[] a...2012-02-27 16:14:12 · 588 阅读 · 0 评论 -
java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方...
[code="java"]public class Power { /** *Q71-数值的整数次方 *实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。 */ private static boolean InvalidInput=false; public stat...2012-02-27 21:43:42 · 257 阅读 · 0 评论 -
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。...
[code="java"]public class ProbabilityOfDice { /** * Q67 n个骰子的点数 * 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。 * 在以下求解过程中,我们把骰子看作是有序的。 * 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况 */ ...2012-02-28 00:00:34 · 459 阅读 · 0 评论 -
java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素...
[code="java"]public class MinOfShiftedArray { /** * Q69 旋转数组的最小元素 * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。 * 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。...2012-02-29 10:30:18 · 125 阅读 · 0 评论 -
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132...
[code="java"]import java.util.Arrays;import java.util.Comparator;public class MinNumFromIntArray { /** * Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。 * 例如输入数组{32, 321},则输出这两个能排成的最小数字...2012-03-05 10:38:20 · 365 阅读 · 0 评论 -
java-67-扑克牌的顺子.从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大...
[code="java"]package com.ljn.base;import java.util.Arrays;import java.util.Random;public class ContinuousPoker { /** * Q67 扑克牌的顺子 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。 * 2-10...2012-03-05 15:46:55 · 497 阅读 · 0 评论 -
java-63-在字符串中删除特定的字符
[code="java"]public class DeleteSpecificChars { /** * Q 63 在字符串中删除特定的字符 * 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 * 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” */ publ...2012-03-05 16:47:09 · 137 阅读 · 0 评论 -
java-54- 调整数组顺序使奇数位于偶数前面
[code="java"]import java.util.Arrays;import java.util.Random;import ljn.help.Helper;public class OddBeforeEven { /** * Q 54 调整数组顺序使奇数位于偶数前面 * 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部...2012-03-06 21:09:06 · 91 阅读 · 0 评论 -
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶...
[code="java"]import java.util.Stack;public class ReverseStackRecursive { /** * Q 66.颠倒栈。 * 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。 * 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。 *1. Pop the top element...2012-03-08 20:41:47 · 445 阅读 · 0 评论 -
java-26-左旋转字符串
[code="java"]public class LeftRotateString { /** * Q 26 左旋转字符串 * 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 * 如把字符串abcdef左旋转2位得到字符串cdefab。 * 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1...2012-03-11 11:23:37 · 79 阅读 · 0 评论 -
java-57-用两个栈实现队列&&用两个队列实现一个栈
[code="java"]import java.util.ArrayList;import java.util.List;import java.util.Stack; /* * Q 57 用两个栈实现队列 */public class QueueImplementByTwoStacks { private Stack stack1; priv...2012-03-11 11:25:38 · 130 阅读 · 0 评论 -
java-60-在O(1)时间删除链表结点
[code="java"]public class DeleteNode_O1_Time { /** * Q 60 在O(1)时间删除链表结点 * 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点 * * Assume the list is: * head->...->nodeToDelete->mNode->nNode->...-...原创 2012-03-12 00:12:24 · 82 阅读 · 0 评论 -
java-56-动态规划-最长公共子序列
[url]http://zhedahht.blog.163.com/blog/static/254111742007376431815/[/url][url]http://blog.csdn.net/yysdsyl/article/details/4226630[/url][img]http://dl.iteye.com/upload/attachment/0064/6583/640e...原创 2012-03-12 00:14:14 · 109 阅读 · 0 评论 -
java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。...
[code="java"]public class PrintMatrixClockwisely { /** * Q51.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 ...2012-02-10 10:55:27 · 289 阅读 · 0 评论 -
java-9. 判断整数序列是不是二元查找树的后序遍历结果
[code="java"]public class IsBinTreePostTraverse{ static boolean isBSTPostOrder(int[] a){ if(a==null){ return false; } /*1.只有一个结点时,肯定是查找树 *2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 ...2011-12-10 11:36:05 · 126 阅读 · 0 评论 -
java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999...
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984写了个java版的:[code="java"]public class Print_1_To_NDigit { /** * Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999...2012-01-05 11:00:16 · 279 阅读 · 0 评论 -
java-2.设计包含min函数的栈
具体思路参见:http://zhedahht.blog.163.com/blog/static/25411174200712895228171/[code="java"]import java.util.ArrayList;import java.util.List;public class MinStack { //maybe we can use origin ...2012-01-07 23:45:47 · 100 阅读 · 0 评论 -
java-4.-在二元树中找出和为某一值的所有路径 .
[code="java"]/* * 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it. * 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the no...2012-01-08 16:58:19 · 145 阅读 · 0 评论 -
java-11.二叉树中节点的最大距离
[code="java"]import java.util.ArrayList;import java.util.List;public class MaxLenInBinTree { /* a. 1 / \ 2 3 / \ / \ 4 5 6 7 max=4 pass "root"...2012-01-11 17:08:50 · 320 阅读 · 0 评论 -
java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字...
[code="java"]public class TwoElementEqualSum { /** * 第 14 题:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1 、 2 、 4 、 7 、 11 、 1...2012-01-11 22:53:05 · 474 阅读 · 0 评论 -
java-3.求子数组的最大和
[code="java"]package beautyOfCoding;public class MaxSubArraySum { /** * 3.求子数组的最大和题目描述:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -...2012-01-12 10:22:51 · 127 阅读 · 0 评论 -
java-1.二叉查找树转为双向链表
[code="java"]import java.util.ArrayList;import java.util.List;public class BSTreeToLinkedList { /*把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ ...2012-01-12 10:29:36 · 170 阅读 · 0 评论 -
java-5.查找最小的K个元素-使用最大堆
[code="java"]import java.util.Arrays;import java.util.Random;public class MinKElement { /** * 5.最小的K个元素 * I would like to use MaxHeap. * using QuickSort is also OK */ publi...2012-01-12 16:13:06 · 210 阅读 · 0 评论 -
java-64.寻找第N个丑数
[code="java"]public class UglyNumber { /** * 64.查找第N个丑数具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url] * 题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。...2012-01-13 00:16:54 · 158 阅读 · 0 评论 -
java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交...
[code="java"]public class LinkListTest { /** * we deal with two main missions: * * A. * 1.we create two joined-List(both have no loop) * 2.whether list1 and list2 join * 3.p...2012-01-14 00:14:39 · 238 阅读 · 0 评论 -
java-13.输入一个单向链表,输出该链表中倒数第 k 个节点
two cursors.Make the first cursor go K steps first.[code="java"]/* * 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点 */ public void displayKthItemsBackWard(ListNode head,int k){ ListNode p1=head...2012-01-14 17:19:37 · 85 阅读 · 0 评论 -
java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环...
[code="java"]//use recursion public static void mirrorHelp1(Node node){ if(node==null)return; swapChild(node); mirrorHelp1(node.getLeft()); mirrorHelp1(node.getRight()); } //use no...2012-01-14 21:22:17 · 147 阅读 · 0 评论 -
java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m ...
[code="java"]import java.util.ArrayList;import java.util.List;import java.util.Stack;public class CombinationToSum { /*第21 题2010 年中兴面试题编程求解:输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随...2012-01-15 21:48:28 · 348 阅读 · 0 评论 -
java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。...
[code="java"]import java.util.Arrays;public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {10...2012-01-18 22:59:51 · 190 阅读 · 0 评论 -
java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
the idea is from:[url]http://blog.csdn.net/zhanxinhang/article/details/6731134[/url][code="java"]public class MaxSubMatrix { /**see http://blog.csdn.net/zhanxinhang/article/details/6731134...2012-01-21 10:53:37 · 309 阅读 · 0 评论 -
java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接...
[code="java"]public class MaxCatenate { /* * Q.37 有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接, * 问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。 */ public static void main(St...2012-01-27 22:46:49 · 124 阅读 · 0 评论 -
java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,...
思路来自:[url]http://zhedahht.blog.163.com/blog/static/2541117420116135376632/[/url]写了个java版的[code="java"]public class GreatestLeftRightDiff { /** * Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。 ...2012-02-09 23:08:15 · 1333 阅读 · 0 评论 -
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序...
[code="java"]import java.util.Arrays;/** * 最早是在陈利人老师的微博看到这道题: * #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K * 设计一个排序算法。It should be faster t...2012-12-21 18:17:32 · 261 阅读 · 0 评论