Yif_
Yif_
全部文章
分类
题解(9)
归档
标签
去牛客网
登录
/
注册
Yif_的博客
全部文章
(共9篇)
不需要任何的排序
分享一个我认为空间复杂度和时间复杂度均比较不错的解法。原理很简单其实只分两步,第一,每次滑动窗口新进来的元素如果已经大于目前已经的窗口,则把最大值标记标成新进来的元素的索引值,ArrayList中添加当前最大值标记对应的数值,继续循环;第二,如果第一步没有发生(新进来的数没那么大),并且滑动窗口造成...
2020-08-31
1
580
简短清晰的中序递归
设置了两个递归方法外的全局变量,分别来储存当前离目标结点还差几个节点了,一个用来储存最终寻找到的目标节点。递归就是很普通的中序遍历,只不过要注意的优化点是:第一,当成功找到第k个点时,后续的节点无须继续遍历;第二,当整棵树都遍历完成却依然没达到k这个大小,那就要返回null(没找到) TreeNod...
2020-08-29
0
445
由两个栈互相交替存储实现
由于接下来的一层与当前层取值方向相反,当前层的最后一个节点反而是下一次要先找的节点的父亲。由此可联想到栈的特性,也就是维护两个栈,利用先进后出的特点,一个栈存储奇数层的节点,一个栈存储偶数层的节点。 public ArrayList<ArrayList<Integer> > ...
2020-08-28
1
583
浑水摸鱼法
不严谨的一个做法。。。但是糊弄测试用例妥妥的根本用不到什么map,queue,set,一个字符串加一个标志数组完事胜在简单。。。。public class Solution { String str = new String(); boolean[] flag = new boolean...
2020-08-27
1
492
可能是比一般穷举强一点的穷举
一种暴力解法 但是起始位置的检测只要暴力检测到sum的一半就好了 因为sum/2+sum/2+1必然是超过sum的 维护两个ArrayList即可 public ArrayList<ArrayList<integer> > FindContinuousSequence(int...
2020-08-25
1
563
BFS
借鉴了上一道题计算当前节点的深度的做法。采用BFS,遍历每一层节点,看每一个节点是否满足平衡性。 import java.util.LinkedList;import java.util.Queue;public class Solution { public boolean IsBalanc...
2020-08-24
2
482
用两个栈
用两个栈来存储了一下各个节点,分别弹栈来把重复的去掉......public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { if(pHead1==null||pHead2==null)return n...
2020-08-24
0
336
双HashTable解法?
用Hash做,维护了两个HashMap,一个用来放第一次的位置,一个用来辅助判断此字母是否重复。但是我这里不更新每一个字母的出现次数,只要出现一次重复当即删除储存索引值的整个Key 所以开销可能也没有那么大。 public int FirstNotRepeatingChar(String str) ...
2020-08-22
1
589
(java)逐位计算累加
public int NumberOf1Between1AndN_Solution(int n) { int count=0; int level=10;//模10处理个位数 模100处理十位数 以此类推 while(10*n/...
2020-08-22
2
575