Fork me on GitHub
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入n个整数,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。牛客网刷题地址思路分析利用Patition函数,将数组分成两部分,判断返回的值是否在第k个位置,如果是,那么前k个数即为所求的数,如果小于k,那么在右边,如果大于k,在左边。利用大顶推,将数组中前k个值放入大顶推中,后面的... 阅读全文
posted @ 2019-08-19 17:18 这个世界~ 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如,输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。牛客网刷题地址思路分析 有两种思路:快速排序的思想:数字次数超过一半,可以说明排序之后中间的数字一定是所求的数字,即统计学上的中位数,利用partit... 阅读全文
posted @ 2019-08-19 12:34 这个世界~ 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个字符串,打印出该字符串中字符的所有排列。例如,输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、 bac、bca、cab和cba。 牛客网刷题地址思路分析 将字符串看成两部分,第一部分为第一个位置的字符,第二部分为剩下的字符,那么,要求这个字符串的操作就可以分为两步: 1. 求第一部分可能出现在第... 阅读全文
posted @ 2019-08-19 10:03 这个世界~ 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述请实现两个函数,分别用来序列化和反序列化二叉树。二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二... 阅读全文
posted @ 2019-08-19 08:51 这个世界~ 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。比如,输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。  牛客网刷题地址思路分析 利用中序遍历的思想,当我们遍历到根节点时,它的左子树已经转换成一个排序的链表了,并且处在链表中的最后一个节点是当前值最大的一个节点,... 阅读全文
posted @ 2019-08-18 11:49 这个世界~ 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)牛客网刷题地址思路分析第一步,可以将复制原始链表上的每个节点,并链接起来,第二步,设置每个节点的特殊指针,这种思路需要O(n2)的... 阅读全文
posted @ 2019-08-18 09:42 这个世界~ 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。  输入上图二叉树以及22,可以打印出两条路径,[10,12] 和[10,5,7] 牛客网刷题地址思路分析 递归的前序遍历二叉树 ,将沿途路径中的值添加到list中,每次与target相减,当ta... 阅读全文
posted @ 2019-08-17 17:53 这个世界~ 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true, 否则返回false. 假设输入的数组的任意两个数字都互不相同。例如,输入数组{5,7,6,9,11,10,8},则返回true,因为这个整数序列是下图二叉搜索树的后序遍历结果。如果输入的数组是{7,4,6,5},则由于没有哪棵二叉搜索树的后序遍历结果是这个序... 阅读全文
posted @ 2019-08-17 16:00 这个世界~ 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述不换行:从上到下打印出二叉树的每个节点,同层的节点按照从左到右的顺序打印。例如,输入下图的二叉树,则依次打印出8,6,10,5,7,9,11。牛客网刷题地址要换行:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行86 105 7 9 11牛客网刷题地址之字形:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的... 阅读全文
posted @ 2019-08-17 09:36 这个世界~ 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目描述思路分析测试用例Java代码代码链接题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{1,2,3,4,5}是某栈的压栈序列,序列{4,5,3,2,1}是该压栈序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该压栈序列的弹出序列。牛客网刷题地址思路分析如果下一个弹出的数字刚好是栈顶数字,那么直接... 阅读全文
posted @ 2019-08-17 09:00 这个世界~ 阅读(106) 评论(0) 推荐(0) 编辑