一个在东
一个在东
全部文章
分类
题解(49)
归档
标签
去牛客网
登录
/
注册
一个在东的博客
全部文章
(共49篇)
从头到尾打印链表_JAVA_较难
递归 import java.util.ArrayList; public class Solution { private ArrayList<Integer> list = new ArrayList(); public ArrayList<Integer>...
算法
2021-01-11
0
411
替换空格_JAVA_较难
遍历替换 public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer res = new StringBuffer(); for(char c : s...
算法
2021-01-11
0
347
二维数组中的查找_JAVA_较难
该二维数组行列有序,可使用排除思想 从右上角开始,该值为行最大值,列最小值 target与之比较,如果找更小值就去行找,所在列全部排除,更大值就去列找,所在行全部排除 public class Solution { public boolean Find(int target, int [...
算法
2021-01-11
0
356
孩子们的游戏(圆圈中最后剩下的数)_JAVA_中等
设有n个同学,数为m,则最后一位排除的为f(n,m),第一位排除的为m%n f(n,m)第一次处理之后,第一位排除的同学为m%n,剩余n-1位同学,而n-1位同学若是从0开始,则最后一位排除的就是f(n-1,m),而此时却是从m%n开始,则最后一位排除的就是(f(n-1,m) + m%n) % n ...
算法
2021-01-08
0
400
剪绳子_JAVA_中等
设绳子长为n的解为f(n),则即长为n的解 为 长为j的解 和 长为n-j的解 的乘积的最大值 public class Solution { public int cutRope(int target) { int[] cache = new int[target + 1...
算法
2021-01-08
0
389
数据流中的中位数_JAVA_中等
维护一个低位堆,一个高位堆,保持高位堆不少于低位堆,且低位堆最多比高位堆少一 如果高位堆比低位堆大1,则取高位堆最小值,否则取低位堆最大值和高位堆最小值的平均数 而优先队列能维护一个大(小)根堆,保证在O(1)找出低位堆最大值和高位堆最小值 import java.util.*; public c...
算法
2021-01-08
0
371
把二叉树打印多行_JAVA_中等
利用队列进行层次遍历,每次遍历时记录该层数量即可 import java.util.*; public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { A...
算法
2021-01-07
0
352
二叉树的下一个节点_JAVA_中等
寻找该节点中序遍历的下一个节点,有可能在它父辈,也可能在他孩子 如果该节点右孩子为空,则下一个节点为父辈,那么找到了该节点所属于的第一个左支系的父辈,则是所求节点 如果该节点右孩子不为空,则下一个节点为它的右孩子的第一个左孩子或者是它的右孩子 import java.util.*; public ...
算法
2021-01-07
0
484
字符流中的第一个不重复的字符_JAVA_中等
一个哈希表储存字符出现次数,一个队列储存第一次出现的字符 输入时记录字符出现次数,第一次出现则加入队列 输出时遍历队列,遇到只在哈希表中出现过一次的字符就输出,没有就输出# import java.util.*; public class Solution { Map<Charac...
算法
2021-01-07
0
313
链表中环的入口结点_JAVA_中等
快指针走完了n圈,路径为A+(n - 1)B + nC,慢指针走了A+B(慢指针走一步则快指针离慢指针近一步,慢指针与快指针距离小于一圈,则慢指针不可能走完一圈) 有A+(n+1)B + nC = 2(A+B),则A =(n-1)(B+C) + C 则相遇后快指针从起点出发,一次走一步,慢指针不变,...
算法
2021-01-06
0
357
首页
上一页
1
2
3
4
5
下一页
末页