Leetcode12 Integer to Roman

2015-04-17
阅读 1 分钟
3k
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.

LeetCode13 - Roman to Integer

2015-04-17
阅读 2 分钟
6.1k
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.

visio 2013 如何制作形状的剪切、联合、组合、拆分、相交、剪除功能

2015-04-16
阅读 1 分钟
36.9k
今天要画一个图,总是找不到 visio 2010 里面的形状的 “联合”、“组合”、“拆分”、“相交”、“剪除” 等功能,在百度和 google 上都无法搜到答案,大家都是在提这个问题(2003 里面的这些功能区哪里了,是不是微软给删除了等等),不过就是没有人回答。只好去英文的网站上去找答案,最终找到了解决方法,特此贴出,和国内的朋...

Java - 并发 atomic, synchronization and volatile

2015-04-16
阅读 6 分钟
10.5k
Thread Safe describe some code that can be called from multiple threads without corrupting the state of the object or simply doing the thing the code must do in right order.

leetcode2 - Add Two Numbers

2015-04-15
阅读 4 分钟
2.4k
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

算法设计 - 查找基础知识

2015-04-13
阅读 6 分钟
7.6k
根据给定的关键字值,在一组数据中确定一个其关键字值等于给定关键字值的数据元素。   若存在这样的数据元素,则称查找是成功的;否则称查找不成功。一组待查数据元素的集合又称为查找表。

算法设计 - 寻找一个字符串的重复子串LRS

2015-04-03
阅读 3 分钟
18.2k
首先这是一个单字符串问题。子字符串 R 在字符串 L 中至少出现两次,则称 R 是 L 的重复子串。比如字符串abcdeabcd的LRS的长度是2,LRS是abcd

浅谈Java字符串(操作)

2015-04-03
阅读 2 分钟
5.8k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 字符串遍历 {代码...} 1. {代码...} 2. {代码...} 3. {代码...} 类似的,arraylist 三种遍历方法: {代码...} 效率分析:遍历 ArrayList 时,使用随机访问 (即,通过索引序号访问) 效率最高,而使用迭代器的效率最低! 类型转换 如何实现 String 与基本数...

Java 笔记 - Random

2015-04-03
阅读 4 分钟
5k
今天在做 Java 练习的时候注意到了 Java 里面的一个随机函数——Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于 Random 函数的总结:

算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列

2015-04-01
阅读 10 分钟
31.2k
本章讲解: 1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度; 2. 与之类似但不同的最长公共子串方法。 最长公共子串用动态规划可实现O(n^2)的时间复杂度,O(n^2)的空间复杂度;还可以进一步优化,用后缀数组的方法优化成线性时间O(nlogn);空间也可以用其他方法优化成线性。 3.LIS(最长递增序列)DP方...

最优化问题的解法 - 动态规划

2015-03-31
阅读 3 分钟
8.7k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第15章的学习笔记 动态规划常用于最优化问题。可能存在多个取最优解的值,希望找到其中一个最优解。 {代码...} 动态规划的设计分为以下四个步骤: 描述最优解结构 递归定义最优解的值 按自底向上的方式计算最优解的值 由计算出的结果构造一...

树 - (二叉查找树,红黑树,B树)- B树

2015-03-28
阅读 3 分钟
3.7k
如果红黑树中的每个黑结点吸收它的红子女,并把它们的子女并入自身,描述这个结果的数据结构。 (2-3-4树) or 假设将一棵红黑树的每一个红结点 “吸收” 到它的黑色父结点中,来让红结点的子女变成黑色父结点的子女(忽略关键字的变化)。当一个黑结点的所有红色子女都被吸收后,其可能的度是多少?此结果树的叶子深度怎样

Java笔记-容器源码(持续更新)

2015-03-26
阅读 9 分钟
3.5k
LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现。 LinkedList 可以被当做堆栈、队列(实现List接口)或双端队列(实现Deque接口)进行操作。 LinkedList 是非同步的。

Java笔记 - transient

2015-03-26
阅读 3 分钟
2.8k
在阅读HashMap和TreeMap的源码过程中,发现了一个奇怪的事情: 这些类执行了Serializable接口,却在关键地方,比如hashmap将存储数据的table 数组声明为transient. 这是何意?

树 - (二叉查找树,红黑树,B树)- 红黑树

2015-03-23
阅读 6 分钟
7.5k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 关于二叉树的基本知识,可以参见:Java 实现基本数据结构 2(树) 以下是算法导论第13章的学习笔记 红黑树 BST的各种操作的时间复杂度是依赖于树的高度,通过使得BST成为红黑树,确保每次对BST进行插入和删除之后,树的高度上限依然是logn. 红黑树,本质上来...

树 - (二叉查找树,红黑树,B树)- BST

2015-03-22
阅读 5 分钟
5.2k
查找树是一种数据结构,支持动态集合操作。在二叉查找树上执行基本操作的时间与树的高度成正比。对已n个节点的完全二叉树,各种操作的最坏情况运行时间O(logn). 但是如果二叉查找树退化成含n个节点的线性链,各种操作的最坏情况运行时间O(n)。 一颗随机构造的二叉查找树的操作平均时间是O(logn).

Java实现基本数据结构2(树)

2015-03-18
阅读 11 分钟
14.1k
前面总结了,栈,队列,链表。 Java 实现基本数据结构 1(栈,队列,链表) 这篇笔记侧重点: 1 二叉树的三种遍历(前中后)迭代非迭代代码 2 重建二叉树的代码与分析 和 关于二叉树的题 简单理解 3 二叉查找树, 红黑树,Btree的性质,实际用途。比如hashmap用到了红黑树

Java 实现基本数据结构1(栈,队列,链表)

2015-03-17
阅读 10 分钟
14.5k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第十章的学习笔记 1 栈 栈顶指针 top (初始值top = -1)指向栈顶元素,插入时先修改指针再插入,删除时先取栈顶元素再修改指针. 1.1 性质 后进先出 入栈,出栈都是O(1) 1.2 核心代码 {代码...} {代码...} 2 队列 用array[n]数组实现的至多含...

11

2015-03-16
阅读 1 分钟
1.8k
假如三个POI,p1,p2,p3 三个用户,q1,q2,q3 用户的考虑的位置因素和非位置因素用x1,x2,x3和x4表示。比如分别是餐馆的价位, 距离,道路拥挤程度,交通车费。

线性时间的选择 - 求第K大(小)的数

2015-03-15
阅读 3 分钟
10.1k
虽是读书笔记,但是如转载请注明出处[链接] ..拒绝伸手复制党 以下内容是算法导论第九章的学习笔记。 1 求最大/小值 最优即O(n),比较n-1次 2 同时求最大值和最小值 最直白的是O(2n),比较2n-2次。还有一个优化的方法是成对的比较,把较小的与min比较,较大的与max比较。这样每对元素需要3次比较 {代码...} 以期望线性时间...

Java笔记 - 重写/重载,向上转型/向下转型

2015-03-13
阅读 4 分钟
5.6k
(如果从重写方法会有什么特点来看,我们是不能重写静态方法的。虽然就算你重写静态方法,编译器也不会报错。也就是说,如果你试图重写静态方法,Java 不会阻止你这么做,但你却得不到预期的结果(重写仅对非静态方法有用)。重写指的是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型。让我们猜一猜为...

常用排序算法总结(性能+代码)

2015-03-13
阅读 10 分钟
35.5k
时间复杂度O(n^2), 空间复杂度O(1) 排序时间与输入有关:输入的元素个数;元素已排序的程度。 最佳情况,输入数组是已经排好序的数组,运行时间是n的线性函数; 最坏情况,输入数组是逆序,运行时间是n的二次函数。

leetcode 1 Two Sum

2015-03-08
阅读 4 分钟
2.1k
Given an array of integers, find two numbers such that they add up to a specific target number.

JVM 的 工作原理,层次结构 以及 GC工作原理

2015-03-05
阅读 6 分钟
78.2k
Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。JVM实现了Java语言最重要的特征:即平台无关性。原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class...

java 编程思想 - Chapter11&Chapter17- 不同容器之间的比较

2015-02-10
阅读 2 分钟
2.9k
ArrayList 和 LinkedList 基本的 List 操作是相同的。但是 ArrayList 底层是 数组实现的,LinkedList 是双向链表实现的(其中每个对象包含数据的同时还包含指向链表中前一个元素和后一个元素的应用)。 因此,如果经常在表中插入删除应该使用 LinkedList,如果大量随机访问元素,应该使用ArrayList.

Tex使用笔记

2015-02-03
阅读 1 分钟
2.1k
Latex提供直接画图的命令,其参考手册是pgf/tikz. 下面给个简单例子: \documentclass[11pt]{article} ... \usepackage{tikz} % Optional PGF libraries \usepackage{pgflibraryarrows} \usepackage{pgflibrarysnakes} ... \begin{document} ... \begin{tikzpicture} \draw (1,0) -- (0,1) -- (-1,0) -- (0,-1) -- cycle; ...

Java编程思想-Chapter11&Chapter17-容器

2015-02-01
阅读 10 分钟
3.4k
Java 容器类库:抽象类和遗留构建. 可以看看看源码。比如HashMap这种容器就是看数组的组织形式和查询访问处理过程. 就是看 几个常用接口,比如put,get这些以及构造函数,就是数据初始化的时候都做了什么。

Java编程思想-Chapter15-泛型

2015-01-29
阅读 3 分钟
4.4k
虽是读书笔记,但是如转载请注明出处[链接] ..拒绝伸手复制党 概述 Java泛型核心概念: 告诉编译器想使用什么类型,然后编译器帮你处理一切细节。 泛型的主要目的: 制定容器要持有什么类型对象,而且由编译器来保证类型的正确性。 简单而安全的创建复杂模型 泛型不能做什么:不能显示地引用运行时类型操作,例如转型,i...

Java编程思想-Stack的三种实现(数组,容器,链表)

2015-01-27
阅读 3 分钟
20.5k
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 java 没有栈这样的数据结构,如果想利用先进后出(FILO)这样的数据结构,就必须自己实现。

Java编程思想-Chapter16-数组

2015-01-26
阅读 2 分钟
2.5k
数组和其它容器之间的区别有三方面:效率、编译期类型检查和保存基本类型的能力,但是由于有了泛型容器和自动包装机制,现在最主要的区别就是效率。ArrayList 效率低很多。 数组是一种效率最高的存储和访问对象引用序列的方式。