![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法题
文章平均质量分 84
manu_zhang
这个作者很懒,什么都没留下…
展开
-
基础算法题-树相关
1. 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。可用递归方式解决。首先利用前序遍历集合的根节点,将中序遍历和前序遍历的结果各分割成两部分,为左右子树的前序遍历集合和中序遍历集合。 代码如下: TreeNode reConstructBinaryTree(int[] pre, int[] in) { if (in.length == 0 | pre.length == 0原创 2017-05-21 21:52:36 · 212 阅读 · 0 评论 -
基础算法题-正则相关
题一Implement regular expression matching with support for ‘.’ and ‘*’. ‘.’ Matches any single character. ‘*’ Matches zero or more of the preceding element. The matching should cover the enti原创 2017-05-21 21:53:20 · 179 阅读 · 0 评论 -
基础算法题-数组相关
1. 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 如果直接排序,后进行选择,则时间复杂度最优为O(nlogn),这里有两种思路。 第一种,利用快速排序的思想,找到第n/2位置的数。然后扫描数组,确保这个数的确超过数组长度的一半。 第二种,设置两个标记,一个记录值,一个记录次数,当后一个与前一个不同时,记录数减一,当记录数减少到0时候,需要更改值的标记。 时间复杂度都为O原创 2017-05-21 21:50:27 · 359 阅读 · 0 评论 -
基础算法题-链表相关
1. 输入一个链表,从尾到头打印链表每个节点的值。先递归,再添加节点的值即可。 代码如下:ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> array = new ArrayList<Integer>(); if (listNode != null) {原创 2017-08-06 17:25:55 · 265 阅读 · 0 评论