随笔分类 -  剑指offer

摘要:题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput 阅读全文
posted @ 2016-08-25 11:37 no_one 阅读(255) 评论(0) 推荐(0)
摘要:题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变。为简单起见,标点符号和普通字母一样处理。 举例说明 例如输入字符串”I am a student. ”,则输出”student. a am I”。 解题思路 第一步翻转句子中所有的字符。比如翻转“I am a student. 阅读全文
posted @ 2016-08-23 15:00 no_one 阅读(260) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 如果一棵树只有一个结点,它的深度为1。 如果根结点只有左子树而没有右子树, 那么树的深度应该是其左子树的深度加 1,同样如果根结点只有右子树而没有左子树,那么树的 阅读全文
posted @ 2016-08-22 14:52 no_one 阅读(254) 评论(0) 推荐(0)
摘要:题目:统计一个数字:在排序数组中出现的次数。 举例说明 例如输入排序数组{ 1, 2, 3, 3, 3, 3, 4, 5}和数字 3 ,由于 3 在这个数组中出现了 4 次,因此输出 4 。 解题思路 利用改进的二分算法。 如何用二分查找算法在数组中找到第一个 k,二分查找算法总是先拿数组中间的数字 阅读全文
posted @ 2016-08-22 14:21 no_one 阅读(153) 评论(0) 推荐(0)
摘要:题目描述: 输入两个链表,找出它们的第一个公共结点 思路: 第一种:直接法 在第一个链表上顺序遍历每个结点,每遍历到一个结点的时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上的结点一样,说明两个链表在这个结点上重合,于是就找到了它们的公共结点。如果第一个链表的长度为 阅读全文
posted @ 2016-08-22 09:52 no_one 阅读(189) 评论(0) 推荐(0)
摘要:题目描述 例如在数组{7, 5, 6, 4}中, 一共存在 5 个逆序对,分别是(7, 6)、(7,5),(7, 4)、(6, 4)和(5, 4)。 我们以数组{7, 5, 6, 4}为例来分析统计逆序对的过程。每次扫描到一个数字的时候,我们不能拿它和后面的每一个数字作比较,否则时间复杂度就是 O( 阅读全文
posted @ 2016-08-19 15:17 no_one 阅读(242) 评论(0) 推荐(0)
摘要:题目描述 在字符串中找出第一个只出现一次的字符。没有找到输出 '.' 输入 sssdddaasw 输出 w 思路 我们是不是可以统计每个字符在该字符串中出现的次数?要达到这个目的,我们需要一个数据容器来存放每个字符的出现次数。在这个数据容器中可以根据字符来查找它出现的次数,也就是说这个容器的作用是把 阅读全文
posted @ 2016-08-19 09:50 no_one 阅读(258) 评论(0) 推荐(0)
摘要:题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 方法1 逐个判断是不是丑数,直观不够高效 方法2 创建数组保存已经找到的丑数 只计算丑数,不在非丑数上花 阅读全文
posted @ 2016-08-18 16:30 no_one 阅读(192) 评论(0) 推荐(0)
摘要:题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
posted @ 2016-08-18 13:54 no_one 阅读(319) 评论(0) 推荐(0)
摘要:题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路 O(n)时间算法,只有可以修改输入数组时可用。 可以基于 Partition 函数来解决这个问题。如果基于数组的第k个数字来调整,使得比第k个数字小的所有数字都 阅读全文
posted @ 2016-08-18 11:10 no_one 阅读(234) 评论(0) 推荐(0)
摘要:题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 方法1:基于partition函数的算法 方法2: 数组中有一个数字出现的次数 阅读全文
posted @ 2016-08-17 21:38 no_one 阅读(169) 评论(0) 推荐(0)
摘要:题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 思路: 把一个字符串看成由两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。 阅读全文
posted @ 2016-08-17 15:42 no_one 阅读(182) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种 阅读全文
posted @ 2016-08-17 11:04 no_one 阅读(229) 评论(0) 推荐(0)
摘要:题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: 第一步:根据原始链表的每个节点N创建对应的N’,把N’链接到N的 阅读全文
posted @ 2016-08-17 10:03 no_one 阅读(402) 评论(0) 推荐(0)
摘要:题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 阅读全文
posted @ 2016-08-16 21:00 no_one 阅读(205) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 阅读全文
posted @ 2016-08-16 14:58 no_one 阅读(251) 评论(0) 推荐(0)
摘要:题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 这道题实质是考查树的遍历算法。从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点, 则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出 阅读全文
posted @ 2016-08-16 13:45 no_one 阅读(322) 评论(0) 推荐(0)
摘要:题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是 阅读全文
posted @ 2016-08-16 10:40 no_one 阅读(178) 评论(0) 推荐(0)
摘要:题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路 把每次的最小元素(之前的最小元素和新压入战的元素两者的较小值)都保存起来放到另外一个辅助栈里。 如果每次都把最小元素压入辅助栈, 那么就能保证辅助栈的栈顶一直都是最小元素.当最小元素从数据栈内被弹出之后,同时弹出 阅读全文
posted @ 2016-08-16 09:22 no_one 阅读(190) 评论(0) 推荐(0)
摘要:题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路: 把打印一圈分为四步 阅读全文
posted @ 2016-08-16 08:43 no_one 阅读(249) 评论(0) 推荐(0)