- 博客(7)
- 收藏
- 关注
原创 hashmap转换
剑指offer40题 最小的k个数题目思路代码题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。思路解法1:大堆解法2:快排由于二叉搜索树的性质,左子树的值均小于根节点的值,右子树的值均大于根节点的值,因此只需判断给定的遍历数组里数值大小关系排列是否正确即可代码下面展示大小堆的方法 代码片.// An highlighted blockpublic int[] getLeastNumbers(in
2020-06-19 18:03:54
302
原创 面试题39. 数组中出现次数超过一半的数字
剑指offer39题 数组中出现次数超过一半的数字题目思路代码题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。思路本题采用摩尔投票法效果最佳,即假设某个元素为众数,票数+1,如果后面的元素与这个元素值不相等,则相互抵消,票数-1,如果一定存在众数,则所有数的票数和一定大于0代码下面展示 代码片.// An highlighted blockclass Solution { public int majori
2020-06-12 16:05:50
121
原创 面试题38. 字符串的排列
剑指offer38题 字符串的排列题目思路代码题目输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。思路由于字符串排列数量有n!种,我们可以通过字符交换固定字符数组第一个元素(第一个元素可以为数组中的任意字符),然后固定数组第二个元素,然后依次固定其他元素,直到最后。由于字符可能会重复,所以采用set去重代码下面展示 代码片.// An highlighted blockclass Solution { LinkedLis
2020-06-11 21:29:44
125
原创 二叉搜索树与双向链表
剑指offer36题 二叉搜索树与双向链表题目思路代码题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。思路由于二叉搜索树性质,左子树节点的数值均小于根节点,右子树节点的数值均大于根节点,因此我们采用中序遍历,使得链表有序构造链表:1.如果pre指针为空,即代表当前访问节点为链表头节点,令head=root2.否则修改双向节点引用,并保存当前节点,即r
2020-06-10 21:51:14
110
原创 复杂链表的复制
剑指offer35题 复杂链表的复制题目思路代码题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。思路待完成代码下面展示 代码片.// An highlighted block}...
2020-06-10 15:44:15
93
原创 剑指offer面试题34. 二叉树中和为某一值的路径
剑指offer面试题34. 二叉树中和为某一值的路径题目思路代码题目输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。思路使用前序遍历,并使用两个链表存路径,一个链表存path,若递归到叶子节点,sum不等于0则表示该路径不符合题意,接下来向上回溯,回溯前要将此节点从path中移除,若sum==0,则将path存入另一个链表result中,最后返回result代码下面展示 代码片.// An highlighted
2020-06-09 17:00:38
218
原创 剑指 Offer 42题 连续子数组的最大和
剑指offer33题 二叉搜索树的后序遍历序列思路代码思路由于二叉搜索树的性质,左子树的值均小于根节点的值,右子树的值均大于根节点的值,因此只需判断给定的遍历数组里数值大小关系排列是否正确即可代码下面展示 代码片.// An highlighted blockclass Solution { public boolean verifyPostorder(int[] postorder) { return verify(0, postorder.length-1, pos
2020-06-09 16:13:43
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人