上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 31 下一页
摘要: 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 思路 思路1:利用排序。排序后最前面的K个数就是最小的K个数。 (时间复杂度O(nlogn)) 思路2:快排Partition思想(Partition函数既是快排的基础 阅读全文
posted @ 2020-08-17 22:00 不学无墅_NKer 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 思路1:利用排序。对数组排序后,如果符合条件的数存在,则一定是数组中间的 阅读全文
posted @ 2020-08-17 11:00 不学无墅_NKer 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 思路 求整个字符串的排 阅读全文
posted @ 2020-08-16 20:12 不学无墅_NKer 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 题目要求转换成排序后的双向链表,根据二叉搜索树的性质,值的大小:左子树<根节点<右子树。因此遍历方式为 中序遍历,中序遍历有 递归实现 和 非递归实现。 思路1:中序遍 阅读全文
posted @ 2020-08-15 21:48 不学无墅_NKer 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路 思路1:先复制结点,用next链接,最后根据原始 阅读全文
posted @ 2020-08-14 21:04 不学无墅_NKer 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路 这道题相当于树的DFS。 1. 遍历方式(根据根节点的位置):由于路径是从根节点出发到叶节点,因此我们首先需要遍历根节点。在树 阅读全文
posted @ 2020-08-14 16:50 不学无墅_NKer 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。例如{5,76,9,11,10,8}返回true;而{7,4,6,5}返回false。 思路 二叉搜索树:树中没有值相同的两个节点,对于每一个节点,它左 阅读全文
posted @ 2020-08-14 11:22 不学无墅_NKer 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 主要内容: 不分行从上到下打印二叉树 分行从上到下打印二叉树 分行从下到上打印二叉树 之字形打印二叉树 二叉树的右视图 1. 不分行从上到下打印二叉树 题目描述:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 相关题目:剑指22;剑指18; 代码实现: import java. 阅读全文
posted @ 2020-08-13 15:41 不学无墅_NKer 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路 考的是二叉树的 层序遍历 。从下图可以看出,每次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的尾部。接下来到对队列的头部取出最早进入队列的节点放到ArrayList 中,重复前面的操作,直至队列中所有的 阅读全文
posted @ 2020-08-13 09:44 不学无墅_NKer 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文
posted @ 2020-08-12 20:40 不学无墅_NKer 阅读(153) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 31 下一页