摘要: 归并排序 归并排序是一种概念上最简单的排序算法,与快速排序一样,归并排序也是基于分治法的。归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。 public class MergeSort { public sta 阅读全文
posted @ 2020-04-24 16:34 yanhowever 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-24 15:33 yanhowever 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 两个线程交替打印 public class Test2 { private static int count = 0; private final static Object lock = new Object(); static class TurningRunner implements Run 阅读全文
posted @ 2020-02-20 17:58 yanhowever 阅读(1655) 评论(0) 推荐(0) 编辑
摘要: 题目: 解题: public class Solution { public boolean hasPath(char[] matrix, int rows, int cols, char[] str) { int flag[] = new int[matrix.length]; for (int 阅读全文
posted @ 2020-02-15 17:48 yanhowever 阅读(228) 评论(0) 推荐(1) 编辑
摘要: 题目: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5 阅读全文
posted @ 2020-02-15 12:03 yanhowever 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4], 阅读全文
posted @ 2020-02-15 11:55 yanhowever 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题目: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 解题: 阅读全文
posted @ 2020-02-14 01:11 yanhowever 阅读(460) 评论(0) 推荐(1) 编辑
摘要: 题目: 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点 阅读全文
posted @ 2020-02-13 12:13 yanhowever 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解题: public class Solution { public ListNode deleteDuplicati 阅读全文
posted @ 2020-02-12 15:04 yanhowever 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 解题: import java.util.ArrayList; /** public c 阅读全文
posted @ 2020-02-12 11:44 yanhowever 阅读(182) 评论(0) 推荐(0) 编辑