摘要:
一,问题描述 给定一棵二叉搜索树,在二叉搜索树的基础上,将之转换成有序的双向链表。即,不需要额外的辅助空间。 二,问题分析 对于二叉搜索树而言,它的结点有左孩子和右孩子指针。这类似于双向链表中的 前向指针(指向前驱结点) 和 后向指针(指向下一个结点)。另外,二叉搜索树中序遍历是有序的。在中序遍历二 阅读全文
摘要:
一,安装 Eclipse Memory Analyzer 在Memory Analyzer的官网找到 update site的地址: 然后:在Eclipse界面 >Help >Install New Software >Add >Add Reposity ,并在 location 中输入:Updat 阅读全文
摘要:
Socket通信,主要是基于TCP协议的通信。本文从Socket通信(代码实现)、多线程并发、以及TCP协议相关原理方面 介绍 阻塞Socket通信一些知识。 本文从服务器端的视角,以“Echo Server”程序为示例,描述服务器如何处理客户端的连接请求。Echo Server的功能就是把客户端发 阅读全文
摘要:
一,问题描述 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的。 二,问题分析 之所以认为这个问题有趣,是因为在实现 min 方法的过程 牵涉到了 “缓存一致性”问题。是不 阅读全文
摘要:
一,问题描述 给定一个以字符串形式表示的入栈序列,请求出一共有多少种可能的出栈顺序?如何输出所有可能的出栈序列? 比如入栈序列为:1 2 3 ,则出栈序列一共有五种,分别如下:1 2 3、1 3 2、2 1 3、2 3 1、3 2 1 二,问题分析 先介绍几个规律: ①对于出栈序列中的每一个数字,在 阅读全文
摘要:
一,问题描述 请构造一棵二叉查找树,并给定两个结点,请找出这两个结点的最低公共祖先结点。 这里假设二叉查找树中的结点的权值存储是整型数字(见代码中的BinaryNode内部类),最低公共祖先结点如下:结点5 和 结点12 的最低公共祖先结点是结点10 二,实现思路 假设给定的两个结点的权值分别为 n 阅读全文
摘要:
现在 有10亿个int型的数字(JAVA中 int 型占4B),以及一台可用内存为1GB的机器,如何找出这10亿个数字的中位数? 中位数定义:数字排序之后,位于中间的那个数。比如将10亿个数字进行排序(位置从1到10亿),排序之后,位于第5亿个位置的那个数 就是中位数。 关于中位数,可参考:快速排序 阅读全文
摘要:
一,问题描述 给定一个单链表,单链表中有环,请找出这个环的入口结点。比如,如下单链表: 入口结点是,结点4. 二,实现思路 如果仅仅是寻找入口结点,可以更改结点元素的值的话,只需要扫描一遍就可以找到入口结点了。 比如,假设所有的结点值都是正数,从头开始,那么在扫描过程中,将扫描的结点的值与 0 比较 阅读全文
摘要:
一,问题描述 给定一个字符串,求出该字符串的全排列。 比如:"abc"的全排列是:abc、acb、bac、bca、cab、cba 二,实现思路 采用递归的方式求解。每次先选定一个字符,然后进行“若干次”交换,求出在选定这个字符的条件下,所有的全排列,并把字符“复位”再交换回来。至此,一趟全排列完成。 阅读全文
摘要:
一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值。打印出数组中两数之和为指定值的 所有整数对。参考:https://leetcode.cn/problems/kLl5u1/submissions/ 二,算法分析 一共有两种方法来求解。方法一借助排序,方法二采用HashSet 方 阅读全文