摘要: 一、题目 1、审题 2、分析 使用栈来实现队列的功能。 二、解答 1、思路 方法一、 只修改 Pop 方法,使得栈中元素排序为队列的规则。 方法二、 使用两个 Stack,input、output。 push: 压入 input 栈。 pop、peek: 若 output 不为空,则对 output 阅读全文
posted @ 2018-11-08 17:32 skillking2 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 判断给出的数值是否为 2 的幂次方。 二、解答 1、思路 方法一、 采用 n & (n-1)每次消掉 n 最右边一个 1 的特点。而 2 的幂次方的二进制形式都是只包含一个 1. eg:2、4、8、16、、、 方法二、 正整数中,2 的幂次方最大为 2 << 30。 判 阅读全文
posted @ 2018-11-08 17:01 skillking2 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 一、n-1发生了什么 ①、二进制数 n 变成 n-1 后,如果最后一位是 0,将向前一位借 2,2-1=1。最后一位为1。如果前一位为0,将继续向前一位借2,加上本身少掉的1.则变为1。一直遇到1。减为0. 所以 二进制 xxxx10000 - 1 = xxxx01111 ②、n&n-1 按照上述 阅读全文
posted @ 2018-11-08 16:51 skillking2 阅读(4095) 评论(0) 推荐(0) 编辑
摘要: 一、题目 1、审题 2、分析 给出一棵二分查找树,求出其中第 k 小的节点数值。 二、解答 1、思路 方法一、 使用 Stack 进行中序遍历。若常访问,则可以采用一个 List 存储。 方法二、 采用二分查找。 ①、先统计左子树长度 m,若 k < m + 1,则要查找的元素在左子树中。 ②、若 阅读全文
posted @ 2018-11-08 11:43 skillking2 阅读(145) 评论(0) 推荐(0) 编辑