![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
文章平均质量分 66
右上角徐
爱学习,爱生活
展开
-
剑指offer系列-T15链表中倒数第k个结点
/** * @author xhl 链表中倒数第k个结点 * 题目描述 * 输入一个链表,输出该链表中倒数第k个结点。 * */public class offerT15 { /** * @param args */ public ListNode FindKthToTail(ListNode head, int k) { ListNode pAhead = h原创 2016-07-09 22:14:25 · 248 阅读 · 0 评论 -
剑指offer系列-T19二叉树的镜像
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.LinkedList;/** * @author xhl * 二叉树的镜像 * 题目描述 * 操作给定的二叉树,将其变换为源二叉树的镜像。原创 2016-07-12 13:36:12 · 297 阅读 · 0 评论 -
剑指offer系列-T23从上往下打印二叉树
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序import java.util.ArrayList;import java.util.LinkedList;/** * @author xhl * 从上往下打印二叉树 * 题目描述 * 从上往下打印出二叉树的每个节点,同层节点从左至右打印. *原创 2016-07-13 15:45:02 · 224 阅读 · 0 评论 -
剑指offer系列-T9_4矩形覆盖
最近越来越意识到斐波拉契数列的普遍性,但是在辨识出是斐波拉契数列的同时也要注意,是否该问题有需要注意的细节,例如从n=多少才开始呈现斐波拉契规律。矩阵覆盖问题便是很好的例子。/** * @author xhl * 矩形覆盖 * 题目描述 * 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩 * 形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩 * 形,总共有多少种方法?原创 2016-07-01 22:29:29 · 410 阅读 · 0 评论 -
剑指offer系列-T10二进制中1的个数
本次博客的程序让我们再次勾起与二进制的爱恨情仇,二进制数值最基本的位运算:与(&)、或(|)、非(~),异或(^),左移(>),逻辑右移(>>>),都能帮我们解决很多问题。/** * @author xhl * 二进制中1的个数 * 题目描述: * 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 * */public class offerT10 { /*方法原创 2016-07-01 22:31:38 · 231 阅读 · 0 评论 -
剑指offer系列-T24_1二叉树后序排序递归实现
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @param args * 二叉树后序排序递归实现 * 思路:后序排列顺序,左右根 */ void BTPost(BinaryTreeNode root){原创 2016-07-13 16:48:19 · 375 阅读 · 0 评论 -
锦标赛排序和堆排序
锦标赛排序和堆排序本文转自:http://blog.csdn.net/wincol/article/details/48129761964年,堆排序被提出,它改善了锦标赛排序的种种缺点。锦标赛排序:锦标赛排序,也称为树形选择排序(Tree Selection Sort),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录进行两两比较,然后优胜者之间转载 2016-07-24 22:14:57 · 534 阅读 · 0 评论 -
剑指offer系列-T24_2二叉搜索树的后序遍历序列
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 二叉搜索树的后序遍历序列 * 题目描述 * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,原创 2016-07-14 00:35:11 · 286 阅读 · 0 评论 -
剑指offer系列-T11数值的整数次方
/** * @author xhl 数值的整数次方 * 题目描述 * 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 */public class offerT11 { /** * @param args */ public double Power(double base, int exponent) {原创 2016-07-02 22:38:54 · 187 阅读 · 0 评论 -
剑指offer系列-T9_5斐波那契数列
/** * @author xhl 斐波那契数列 题目描述 大家都知道斐波那契数列, 现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n>=0 * 本次实现的时间复杂度是o(logn) */public class offerT9_5 { /** * @param args */ int Fibonacci(int n) {原创 2016-07-02 22:36:09 · 284 阅读 · 0 评论 -
剑指offer系列-T11_2数值的整数次方(时间复杂度为o(logn))
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** @author xhl 数值的整数次方 * 题目描述 * 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。原创 2016-07-02 22:44:17 · 602 阅读 · 3 评论 -
剑指offer系列-T26复杂链表的复制
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 复杂链表的复制 * 题目描述 * 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任原创 2016-07-15 16:31:12 · 285 阅读 · 0 评论 -
剑指offer系列-T27把二元查找树转变成排序的双向链表
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。 今晚状态不佳,以至于这道题耗费了很长时间,不过最后终于通过了牛客网全部测试用例。实现代码是在借鉴http://bylijinnan.iteye.com/blog/1343176原创 2016-07-16 01:27:09 · 269 阅读 · 0 评论 -
剑指offer系列—T28字符串的排列
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.ArrayList;/** * @author xhl * 字符串的排列 * 题目描述 * 输入一个字符串,按字典序打印出该字符串中字符的所有原创 2016-07-16 11:50:04 · 376 阅读 · 0 评论 -
剑指offer系列-T12_1全排列
/** * @author xhl 全排列 全排列就是从第一个元素起每个数分别与它后面的元素(包括他自己)交换,一直到最后一个元素递归结束,输出数组。 * 但这只是一种情况的输出,本次递归结束后还要继续和后面的其他元素交换,所以需要先再交换还原,再下一步递归。 */public class offerT12_1 { /** * @param args */ v原创 2016-07-06 22:06:56 · 166 阅读 · 0 评论 -
剑指offer系列-T13在O(1)时间删除链表节点
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 题目:在O(1)时间删除链表节点 * 题目描述:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 * 方法思路:链原创 2016-07-07 20:54:04 · 396 阅读 · 0 评论 -
剑指offer系列-T25二叉树中和为某一值的路径
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.ArrayList;/** * @author xhl * 二叉树中和为某一值的路径 * 题目描述 * 输入一颗二叉树和一个整数,打印出原创 2016-07-15 00:25:58 · 331 阅读 · 0 评论 -
剑指offer系列-T22栈的压入、弹出序列
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.Stack;/** * @author xhl * 栈的压入、弹出序列 * 题目描述 * 输入两个整数序列,第一个序列表示栈的压入顺序,请判原创 2016-07-13 13:39:40 · 285 阅读 · 0 评论 -
剑指offer系列-T29数组中出现次数超过一半的数字
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 数组中出现次数超过一半的数字 * 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,原创 2016-07-24 16:16:48 · 198 阅读 · 0 评论 -
剑指offer系列-T14_1调整数组顺序使奇数位于偶数前面
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl 题目:调整数组顺序使奇数位于偶数前面 * 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序, * 使得所有的奇数位于数组的前半部分原创 2016-07-08 11:09:07 · 271 阅读 · 0 评论 -
剑指offer系列-T16链表中倒数第k个结点
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 链表中倒数第k个结点 * 题目描述 * 输入一个链表,输出该链表中倒数第k个结点。 * 思路:为避免因改变指针方向导致链表断开,需要保存三原创 2016-07-11 16:31:45 · 208 阅读 · 0 评论 -
死锁示例程序
public class deadlock { /**一个简单的死锁类 * 在一个Runnable实现类中模拟两个进程的执行内容; * 当flag == true时模块1(线程1)执行,先执行锁外程序(不受锁限制),再锁定锁1 * (str对象)执行100到1的输出, * 然后锁定锁2(str1对象),即需要得到锁2才能继续执行; * 当flag == false时模块2(线原创 2016-06-28 21:59:19 · 209 阅读 · 0 评论 -
剑指offer系列-从尾到头打印链表
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * 从尾到头打印链表 * 题目描述:输入一个链表,从尾到头打印链表每个节点的值。 输入描述:输入为链表的表头 输出描述:输出为需要打印的“新链表”的表头 */原创 2016-06-28 21:53:30 · 592 阅读 · 1 评论 -
剑指offer系列-替换空格
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * 替换空格 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。 例如,当字符串为We Are * Happy.则经过替换之后的字符串为We%20Are%20原创 2016-06-28 21:45:58 · 295 阅读 · 0 评论 -
剑指offer系列-二维数组中的查找
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。public class offerT3 { /** * 二维数组中的查找 * 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增原创 2016-06-28 21:01:41 · 559 阅读 · 0 评论 -
剑指offer系列-用两个栈实现队列
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.Stack;/** * 用两个栈实现队列 * 题目描述 * 用两个栈来实现一个队列, * 完成队列的Push和Pop操作。 队列中的元素原创 2016-06-29 22:18:54 · 279 阅读 · 0 评论 -
剑指offer系列-用两个队列实现栈
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/** * @auth原创 2016-06-29 22:23:22 · 267 阅读 · 0 评论 -
剑指offer系列-T17合并两个排序的链表
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl *合并两个排序的链表 *题目描述 *输入两个单调递增的链表,输出两个链表合成后的链表, *当然我们需要合成后的链表满足单调不减规则。 *思路原创 2016-07-11 21:32:46 · 234 阅读 · 0 评论 -
剑指offer系列—T18树的子结构
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 树的子结构 * 题目描述 *输入两棵二叉树A,B,判断B是不是A的子结构。 *(ps:我们约定空树不是任意一个树的子结构) *思路:先找原创 2016-07-12 00:23:53 · 299 阅读 · 0 评论 -
剑指offer系列-T20顺时针打印矩阵
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.ArrayList;/** * @author xhl * 顺时针打印矩阵 * 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序原创 2016-07-12 22:23:33 · 343 阅读 · 0 评论 -
剑指offer系列-T8旋转数组的最小数字
创作需要灵感,编程是一种创作,即使不能保证你的思想前无古人,也凝结着敲代码的人当下的思维结晶。说不定以后自己会看起来也会感叹,哦,那时的我在思考。寻找旋转数组的最小数字,体现了二分查找的应用思想,不过要想考虑全面还是比较繁琐,既需要实现{3,4,5,1,2}这样的常规旋转数组,又要想到特殊情况如{1,2,3,4,5,6},代码如下,略繁琐。/** * @author xhl 旋原创 2016-06-30 21:52:00 · 266 阅读 · 0 评论 -
剑指offer系列T9斐波那契数列
/** * @author xhl 斐波那契数列 题目描述 大家都知道斐波那契数列, 现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n>=0 * 改程序时间复杂度o(n) * */public class offerT9 { int Fibonacci(int n) { if (n == 0) return 0; int a0 = 0;原创 2016-06-30 22:04:13 · 305 阅读 · 0 评论 -
剑指offer系列-T9_2青蛙跳台阶(上)
/** * @author xhl * 跳台阶 * 题目描述 *一只青蛙一次可以跳上1级台阶,也可以跳上2级。 *求该青蛙跳上一个n级的台阶总共有多少种跳法。 */public class offerT9_2 { /** * @param args * */ int FrogJump(int n) { if (n == 1) return 1; in原创 2016-06-30 22:06:37 · 271 阅读 · 0 评论 -
剑指offer系列-T9_3青蛙跳台阶(下)
/** * @author xhl 跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……也可以跳n级。 求该青蛙跳上一个n级的台阶总共有多少种跳法。 * n>=1 * 被注释的部分是for循环实现,时间复杂度是o(n),但空间复杂度是o(n), * 第二种递归实现,时间复杂度是o(2^n),空间复杂度为o(1) */publ原创 2016-06-30 22:07:46 · 409 阅读 · 1 评论 -
剑指offer系列-T21包含min函数的栈
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。/** * @author xhl * 包含min函数的栈 * 题目描述 * 定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。 * 要求函数min、push原创 2016-07-13 00:35:04 · 252 阅读 · 0 评论 -
剑指offer系列-T40找出数组中只出现一次的2个数
本人对java语言更熟悉,所以剑指offer代码都是通过Java实现,且涉及的核心代码全部通过牛客网的测试用例检查,感谢牛客网为我检验程序提供了极大帮助!main函数是为了在自己运行程序时,运行结果更直观化。import java.util.ArrayList;/** * *//** * @author xhl *题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。原创 2016-09-04 11:53:29 · 416 阅读 · 0 评论