摘要: 1 package com.datastruct; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 6 public class BigHeap { 7 8 9 10 /* 11 *交换堆中的两个元素 12 */ 1... 阅读全文
posted @ 2015-11-17 15:36 代码的搬运工 阅读(878) 评论(0) 推荐(0) 编辑
摘要: 注:这里有一点需要说明,就是在删除堆中的一个元素时,如果遇到下面的情况,交换12和14两个节点元素后,14>13需要进行上移操作,来保证堆的结构。如上述代码中删除函数中所示。 阅读全文
posted @ 2015-11-17 10:08 代码的搬运工 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。代码如下,java依旧:import java.util.ArrayList;import j... 阅读全文
posted @ 2015-11-14 15:41 代码的搬运工 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 又是一道牛客网的问题。描述如下:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:这题可以用插入排序的思想解决。如果不喜欢复杂的操作就创建一个新链表来对两个链表合并,否则可以使用其中一个链表作为插入的链表,不过那样会有很多节点断链以及修复链的操作,... 阅读全文
posted @ 2015-10-30 11:29 代码的搬运工 阅读(1057) 评论(0) 推荐(0) 编辑
摘要: 这套题来自于牛客网剑指offer的第四题,由于本题涉及到了对树的递归操作,而且在边界上自己计算时犯了小错误,这里记录一下: 题目描述如下: 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7, 阅读全文
posted @ 2015-10-29 10:35 代码的搬运工 阅读(1221) 评论(0) 推荐(0) 编辑
摘要: 这是来自牛客网关于一个二进制的运算我的思路为每次和1 2 4 .....进行按位与运算就可得到二进制中1的个数代码如下 1 /* 2 * *new coder ponint to offer 11 3 * find bit 1 num of a nunber 4 */ 5 6 #inclu... 阅读全文
posted @ 2015-10-28 16:01 代码的搬运工 阅读(397) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2015-10-27 16:41 代码的搬运工 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 二分查找需要注意两个问题一个是临界问题,流行的方案是左开右闭区间方式,还有一个就是当数组元素中有多个相同待查找值的应该返回第一个,下面的代码可以解决这问题,记录一下,由于最近开始用gvim编程了,请原谅我的中式英语注释。 1 /* 2 * binary search from programing... 阅读全文
posted @ 2015-10-27 16:15 代码的搬运工 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 *binary search 3 *just return a value position equals the find but may not the first one 4 *we should caution the left open right close or left close and right close rules to not happe... 阅读全文
posted @ 2015-10-27 16:11 代码的搬运工 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 最近一直在优化项目中字符串匹配的问题,于是就想起了自动机,之前也看过一些文章,一直没有实现,现在项目中要用,然后又看了一些关于AC自动机的文章,这里实现了一个简单的AC自动机的小接口,我是实现自动机状态结构采用了trie树,实现起来简单一些,但在一定程度上造成空间复杂度的增加,欢迎大家纠错和一起交流 阅读全文
posted @ 2015-09-09 11:07 代码的搬运工 阅读(598) 评论(0) 推荐(0) 编辑