- 博客(5)
- 收藏
- 关注
原创 Morris遍历二叉树
通常,我们遍历一颗二叉树都会采用递归的方式,即前序遍历、中序遍历和后序遍历,这三种方法的时间复杂度为O(N),空间复杂度为O(logN);而Morris算法遍历一颗二叉树的时间复杂度为O(2N),空间复杂度为O(1).可以想象这是一件很吸引人的特性。 二叉树是一种非线性的结构,而前面说的三种遍历方法实际上是将非线性转换成线性的过程。即将一个树转变成一个链表的过程。那么除了链表的头和尾外,每个中间点
2016-06-13 08:51:37 582
原创 [leetcode-347]Top K Frequent Elements(java)
原题:这里写链接内容代码如下://使用容量为k的最大堆的数据结构,然后将所有元素都输入一遍,所以时间复杂度为O(nlogk)public class Solution { class Element{ int num; int count; public Element(int num,int count){ this
2016-06-06 09:05:55 1014
原创 [leetcode-343]Integer Break(java)
这道题很神奇,看到了show hint,然后按照提示把7-10之间的数拆分来看,发现最大值的序列中全部是3或者2,于是我猜测这可能就是所谓的规律,然后写了如下代码。public class Solution { public int integerBreak(int n) { int val = 1; if(n <= 3)//当输入为2或者3时,因为要求必须要
2016-06-04 09:34:06 699
原创 [leetcode-342]Power of Four(java)
原题链接:https://leetcode.com/problems/power-of-four/ 思路:首先判断是否是2的幂,如果是的话,再去判断是否为4的幂,判断2的幂要求整数的bit位中只有一个1,而这可以根据num & (num -1)来判断。 得到结果后,最佳的方案是能找到1后面有多少个0,然后这个个数对2取余,如果为0,表示可以整除。但是我没找到方法。public class Sol
2016-06-01 10:22:52 1335
原创 [leetcode-341]Flatten Nested List Iterator(java)
这道题的思想是在调用hasNext的时候,将NestedInteger拆分,然后将第一个元素保存到域变量中即可。其他元素添加到链表的首部。/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its imp
2016-06-01 09:26:15 2048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人