随笔分类 - Java算法
摘要:import java.util.Arrays; import java.util.PriorityQueue; import java.util.Queue; public class LeafNode { // 堆方法(优先队列) // 1.堆的性质是每次可以找出最大或最小的元素 // 快排变形
阅读全文
摘要:public static void main(String[] args) { System.out.println(1<<35); System.out.println(1<<3); }输出的结果都是:8 1.十进制转二进制 原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数
阅读全文
摘要:一:我们有这么一列数据: 数据格式 m1的数据格式如下: margeKey 是 要按照 那个key来进行分组,key 名字 [{active_user=2, company_id=13}, {active_user=1, company_id=126}, {company_id=13, materi
阅读全文
摘要:AES加密模式和填充方式:还有其他 更多关于加密模式内容:http://blog.sina.com.cn/s/blog_679daa6b0100zmpp.html PHP的AES加密填充只有ZeroPadding(补零 - 因为数据长度不是16的整数倍就需要填充),而Java是没 有这种填充模式,杯
阅读全文
摘要:public int firstUniqChar(String s){ int[] freq=new int[26]; for(int i=0;i<s.length();i++){ freq[s.charAt(i)-'a']++; } for(int i=0;i<s.length();i++) if(freq[s.charAt(i)-'a']==1) retu...
阅读全文
摘要:对于一组数据,主要支持两种动作: union isConnected 由子数指向父的并差集 测试: 第三种:(size) 第四种:(rank) 第五种:(路径压缩) 第六种:(递归)
阅读全文
摘要:Trie查询每个条目的时间复杂度,和字典中一共有多少条无关。 时间复杂度为O(W) w为查询单词的长度 测试: search可以搜索文字或正则表达式字符串,字符串只包含字母.或者a-z. Trie和映射
阅读全文
摘要:线段树不是完全二叉树,是平衡二叉树 堆也是平衡二叉树 堆满二叉树: h层,一共有2^h-1个节点(大约是2^h) 最后一层(h-1层)有2^(h-1)个节点 最后一层的节点数大致等于前面所有层节点之和 如果区间有n个元素,数组表示需要4n的空间 不考虑添加元素,使用4n的静态空间即可 接口: 测试:
阅读全文
摘要:普通队列:先进先出,后进后出 优先队列:出队顺序和入队顺序无关,和优先级相关。 堆中某个节点的值总是不对于其父节点的值,最大堆。 测试 给定一个非空整数的数组,返回其中出现频率前k高的元素 java自定义:
阅读全文
摘要:1.考虑不重复元素,重复元素不添加 2.重复元素添加
阅读全文
摘要:import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; ...
阅读全文
摘要:set: 文件操作: 有序集合中的元素具有顺序性,基于搜索树的实现 无序集合中的元素没有顺序,基于哈希表实现 二分搜索树的映射实现: 测试: 有序映射中的键具有顺序性, 基于搜索树的实现 无序映射中的键没有顺序性 基于哈希表实现
阅读全文
摘要:二叉树: 和链表一样,动态数据结构。 二叉树具有唯一根节点 二叉树具有天然的递归结构 二分搜索树是二叉树 二分搜索树的每个节点的值: 1.大于其左子树的所有节点的值 2.小于其右子树的所有节点的值 每一颗子数也是二分搜索树 二分搜索树的前序遍历: 测试: 二分搜索树的中序遍历和后续遍历 测试: 测试
阅读全文
摘要:删除链表的指定元素: 第一种方法: 使用头节点: 实现求数组递归的算法: 用递归实现删除链表中的元素:
阅读全文
摘要:判断括号是否匹配:调用java本身 调用自己写的: 接口: 实现方法: 队列也是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另一端(队首)取出元素 循环队列:
阅读全文