- 博客(55)
- 资源 (8)
- 收藏
- 关注
原创 Find the Difference
题目地址:https://leetcode.com/problems/find-the-difference/Given two strings s and t which consist of only lowercase letters.String t is generated by random shuffling string s and then add one more letter
2016-11-29 18:20:49 288
原创 Single Number
题目地址:https://leetcode.com/problems/single-number/Given an array of integers, every element appears twice except for one. Find that single one.Note: Your algorithm should have a linear runtime complexi
2016-11-29 14:59:52 251
原创 Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the
2016-11-29 14:27:52 312
原创 Island Perimeter
题目地址:https://leetcode.com/problems/island-perimeter/You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/v
2016-11-28 21:34:41 1016
翻译 Java中的HashMap与TreeMap
原文地址:HashMap and TreeMap in JavaHashMap与TreeMap是Collection框架中的一部分。 HashMapjava.util.HashMap类是一种基于哈希的实现。在HashMap中,我们有一个key和一个value,pairHashMap<K, V> hmap = new HashMap<K, V>();我们考虑下面的例子,我们需要对已知整型数组中的
2016-11-27 23:02:54 1276
翻译 Java中HashMap与HashTable的区别
原文地址:Differences between HashMap and HashTable in JavaHashMap与HashTable在哈希表中存储键值对。当用HashTable或者HashMap的时候,我们指定一个对象用作key,还有一个指向这个key的value。然后对这个key进行hash操作,得到的哈希码用于在表中存放value的索引。Java代码样例// A sample Java
2016-11-27 22:00:22 399
翻译 Java中的HashSet
原文地址:HashSet in JavaHashSet:实现了Set接口HashSet依赖的数据结构是哈希表因为实现的是Set接口,所以不允许有重复的值插入到HashSet中的对象不保证与插入的顺序保持一致。对象的插入是根据它的hashcodeHashSet中允许有NULL值HashSet也实现了Searlizable和Cloneable两个接口HashSet的构造函数: Hash
2016-11-27 19:19:50 9228 1
翻译 Java中的隔离岛
原文地址:Island of Isolation in Java在Java中,对象的析构只有垃圾回收模块关心,那些没有引用的对象正受垃圾回收中意。垃圾回收器可以识别这类对象。隔离岛Object1引用Object2,Object2引用Object1。要么Object1被其他对象引用,要么Object2倍其他对象引用。这就是隔离岛(Island of Isolation)。一般而言,隔离岛是一组对象
2016-11-27 18:27:09 527
翻译 Java对象在内存中是如何存储的
原文地址:How are Java objects stored in memory?在Java中,所有的对象都被动态地分配在堆上。这与C++不同,C++的对象要么分配在栈中,要么分配在堆上。在C++中,我们用new()来分配对象,这个对象就会被分配到堆上,如果不是全局的或者静态的,那么就会分配到栈上。在Java中,只有我们在申明一个类型变量的时候,只创建一个引用(内存不会为对象分配)。为了给一个对
2016-11-26 21:53:37 3955
翻译 数据结构——线索二叉树
原文地址:Threaded Binary Tree遍历一个二叉树要么用递归,要么用附件的栈。线索二叉树的思想是让中序遍历更快,或者不用栈和递归。一个二叉树通过构建所有右孩子的指针建立索引,这个指针一般为NULL指向中序后继节点(如果存在的话)。线索二叉树有两种类型:单线索:使一个NULL右指针指向中序先驱(如果后继存在)双线索:左右NULL指针分别指向中序的先驱和中序的后继。在翻转中序遍历与后序遍历
2016-11-26 21:32:11 444
翻译 数据结构——不用栈、不用递归中序遍历树
原文地址:Inorder Tree Traversal without recursion and without stack!用Morris Traversal,我们可以不用递归和栈遍历树。Morris Traversal的思想是基于线索二叉树的。在这个遍历中,我们首先建立到中序先驱的连接,并用这些连接打印数据,最后恢复变化,还原出树的原貌。1. 初始化current为root 2. While
2016-11-26 20:44:35 1092
翻译 数据结构——非递归中序遍历树
原文地址:Inorder Tree Traversal without Recursion不用递归遍历树,那么很显然就是用栈了。下面是用栈遍历二叉树的算法。逐步执行这个算法请看这里。1) 建立一个空栈S。2) 初始化当前的节点作为根节点3) 将当前节点push到S中并设置current = current->left直到current为NULL4) 如果current为NULL并且stack不
2016-11-26 20:22:56 888
翻译 数据结构——树的水平遍历
原文地址:Level Order Tree Traversal树的水平遍历就是广度优先遍历树。 上树的水平遍历顺序是:1 2 3 4 5。方法1 (用函数打印已知层)算法:这个方法里面有两个基本的函数。一个是打印已知层的所有节点(printGivenLevel),另一个是打印树的水平顺序遍历(printLevelorder)。printLevelorder用printGivenLevel逐个从
2016-11-26 16:13:09 1118
翻译 数据结构——二叉树的直径
原文地址:Diameter of a Binary Tree树的直径(有时也称作宽度),指的是树中的两个叶子节点之间最长路径的节点的数目,下面的图显示了两个树的直径都是9,形成最长路径的两个端点的叶子节点被加上了阴影(注意每个树中长度为9的路径不止一个,但是没有比9再更长的路径了)。 一个树T的直径是下面几条里面最长的:T的左子树的直径T的右子树的直径两个叶子之间穿过T的根的最长路径(这
2016-11-26 15:33:58 5267
翻译 数据结构——树的遍历
原文地址:Tree Traversals不像线性数据结构(数组,列表,队列,堆栈等),它们在逻辑上只有一种遍历方式,树可以有不同的遍历方式。下面就是遍历树的一般所用的方法:深度优先遍历: 1)中序遍历(Left, Root, Right):4 2 5 1 3 2)先序遍历(Root, Left, Right):1 2 4 5 3 3)后序遍历(Left, Right, Root)
2016-11-26 15:08:15 5099
翻译 数据结构——握手引理与有趣的树特性
原文地址:Handshaking Lemma and Interesting Tree Properties什么是握手引理(Handshaking Lemma)?握手引理是关于无向图的。在每个有限的无向图中,奇数度的定点的个数总是偶数。握手引理是一个度数和公式的推论(有时候被称为握手引理)∑v∈Vdeg(v)=2|E|\sum_{v\in V} deg(v)=2|E|在树的数据结构中握手引理到底有啥
2016-11-26 13:19:41 4973
翻译 数据结构——二叉树的类型
原文地址:Binary Tree | Set 3 (Types of Binary Tree)前面我们已经介绍了二叉树以及二叉树的特性。在这一篇中我们讨论二叉树的常见类型。下面就是二叉树的常见类型。满二叉树:如果一个二叉树的所有节点要么有2个孩子,要么没有孩子,那么这个二叉树就是满的。下面就是一个满二叉树的例子: 18 / \
2016-11-25 16:01:13 906
翻译 数据结构——二叉树的特性
原文地址:Binary Tree | Set 2 (Properties) 我们已经在第一章中介绍了二叉树,在这一章,介绍一下二叉树的特性。1)一个二叉树中第ll层的节点最大数目为2l−12^{l-1}。这里的“层”指的是从根节点到指定节点的路径上的节点数。根在第1层。这个可以通过归纳法证明。 对于根,l=1l=1,节点数=21−1=1=2^{1-1}=1 假设在ll层的最大节点数为2l−12
2016-11-25 15:14:57 510
翻译 数据结构——树的概述
树:跟数组,链表,堆栈,队列不一样,这些都是线性的数据结构,而树呢是层级类的数据结构。树的词汇表:最上层的节点叫树根节点,一个元素下层的直接元素称为它的孩子节点。直接上层节点称为父节点。例如a是f的孩子,并且f是孩子的父亲。最后没有孩子节点的元素称为叶子节点。 tree ---- j <-- root / \ f k
2016-11-25 14:17:53 309
转载 构建Java并发模型框架
原文地址:http://www.ibm.com/developerworks/cn/java/l-multithreading/#toggleJava的多线程特性为构建高性能的应用提供了极大的方便,但是也带来了不少的麻烦。线程间同步、数据一致性等烦琐的问题需要细心的考虑,一不小心就会出现一些微妙的,难以调试的错误。另外,应用逻辑和线程逻辑纠缠在一起,会导致程序的逻辑结构混乱,难以复用和维护。本文试图
2016-11-22 21:11:01 664
转载 Java 类的热替换 —— 概念、设计与实现
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/index.html构建基于 Java 的在线升级系统对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本。因此,如果能够方便地在不停止系统业务的情况下进行系统升级,则可以很好地解
2016-11-21 22:58:53 215
翻译 计算在已知字符串中所有回文子序列的数目
原文地址:Count All Palindromic Subsequence in a given String在已知的字符串中查找有多少个回文的子序列(没必要对相同的做区分)。注意空字符串不能看作是回文。例子:输入 : str = "abcd"输出 : 4解释 :- 回文子序列有 : "a" ,"b", "c" ,"d" 输入 : str = "aab"输出 : 4解释 :- 回文子序列有
2016-11-17 17:50:12 2601 1
原创 com.sun.mirror的jar包
《Java編程思想》中的注解代码中引入过这么一个包(com.sun.mirror),书上说的是在Jdk中有个tools.jar中,引入这个包就每这个问题了,但是笔者用的是JDK 1.8,把这个包import进来,代码还是一批报错。实在没办法就在网上找,于是找到了apt-mirror-api-0.1.jar,它包含了以下内容: Files contained in apt-mirror-api-0
2016-11-15 13:01:49 8180 8
翻译 动态规划之子集和问题
原文地址:Dynamic Programming | Set 25 (Subset Sum Problem)已知一个非负整数集,与sum的值,确定这个集合是否存在这样的子集,这个子集所有元素和等于sum。例子: set[] = {3, 34, 4, 12, 5, 2}, sum = 9输出: True //There is a subset (4, 5) with sum 9.设isSubSe
2016-11-13 13:54:11 8156
原创 Server Tomcat v7.0 was unable to start within 45 seconds
在启动Tomcat的时候,启动到一半提示这样的错误,尤其是在服务器重启以后首次启动tomcat,往往会出现这样的情况:Server Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.这个
2016-11-12 10:36:20 821
原创 Intellj Idea 16添加Maven新建模块
在Intellj Idea 16中,新建Maven项目,发现新建窗口没有Maven模块。打开File->settings->Plugins,如下图:在查询框中输入“Maven”字样,即可搜索出Maven的相关插件,然后把这两个全部选中,点击“Apply”。然后重启Intellj Idea后,就会发现新建窗口就有Maven模块了。下面就该干啥干啥吧!
2016-11-11 09:45:30 1569
原创 JavaScript代码加Alert后代码有效,不加则无效。
这个问题还真是头疼,刚开始觉得好奇怪,同样一段代码,为毛随便alert一下,下面的代码就起作用,去掉alert,啥效果也没有,真是奇了怪了!先看下代码:function setDedaultOption() { var select = document.getElementById("nodeId"); //假设我们想要第二个选项为默认选项 select.options[1
2016-11-10 14:02:54 2473
翻译 构建一个n×n的unique矩阵
原文地址:Construct a unique matrix n x n for an input n已知一个奇数n,根据下面的条件得到一个n×n大小的矩阵:每个元素是1到n之间的一个整数(包含1和n);在同一行,同一列没有相同的数字;所有的1必须距矩阵的中心任意可能的距离,对于一个奇数n,n×n的矩阵中心是cell ((n-1)/2, (n-1)/2)。输出:Input : n = 1
2016-11-08 10:43:48 1436
原创 启动Tomcat提示:指定的服务未安装
错误提示刚下载下来的tomcat或者刚重装了系统,这时候如果想运行tomcatX.exe可能会抱这样的错误:这是因为没有安装汤姆猫所指定的服务。安装服务打开cmd,切换到tomcat/bin目录下,运行命令:service.bat install,如图所示:运行完毕后,会出现服务已安装的提示,然后再运行tomcatX.exe或者tomcatXw.exe(这里的X是大版本号),就不会报错啦!卸载服务当
2016-11-07 21:45:11 1803
原创 设置tomcat启动参数
Linux在修改启动参数前先看下tomcat默认启动参数是啥玩意,这样是为了下面方便进行对比:$ jps -v32136 Jps -Denv.class.path=.:/usr/java/jdk1.8.0_101/lib/dt.jar:/usr/java/jdk1.8.0_101/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_101 -Xm
2016-11-07 18:54:17 34501 1
原创 Windows下Jconsole无法连接到进程
Jconsole是JDK提供给我们一种十分常用的工具,它将一些关于JVM的文本数据图形化,使得用户对JVM的监控更直观。但是有时会出现Jconsole无法连接到进程的情况,这是因为JVM在启动的时候默认加载参数没有进行设置,所以只要我们队JVM的启动参数进行恰当的配置就行了。启动参数在哪里设置,请参考设置tomcat启动参数 添加启动参数-Dcom.sun.management.jmxremote
2016-11-07 18:23:44 8028
原创 Java虚拟机工具之堆栈跟踪工具jstack检测对象wait方法
wait()方法源于Object类,当线程调用wait的时候,意思就是说线程会放弃对象锁,进入等待此对象的等待锁定池。下面看看用jstack怎么定位wait方法。首先写一段简单的调用wait的代码:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;class WaitTask impl
2016-11-07 16:44:31 2746
原创 Java虚拟机工具之堆栈跟踪工具jstack检测输入等待
当代码运行到有输入的时候,毫无疑问执行会停下来,然后监听键盘时间,然后将键盘输入的字符放到变量中,jstack可以检测这样的有输入的代码比较简单:import java.util.Scanner;public class InputWait { public static void main(String[] args) { Scanner s = new Scanner(S
2016-11-07 15:59:06 831
原创 Java虚拟机工具之堆栈跟踪工具jstack检测死锁
jstack是一个很实用的工具,不仅能定位到死循环的位置,还能找到死锁的位置,这个工具对我们直接在生产机上定位错误带来了极大的方便,尤其是那些不容易复现的错误。首先呢,先写一个能产生死锁的代码。代码逻辑很简单,咱就产生两个线程,两个线程分别执行加锁与放锁两个动作,啥时候产生死锁呢,就是在两个线程都释放锁以后,又同时加锁,于是互相僵持,互相等待,产生死锁。import java.util.concur
2016-11-07 15:21:09 3816
翻译 字符数目相同的子字符串的数目
原文地址:Count Substrings with equal number of 0s, 1s and 2s已知一个字符串,这个字符串只包含0,1,2,求子字符串的数目,这些子字符串包含有相同数目的0,1,2。例子:输入: str = “0102010”输出: 2解释: 子字符串str[2, 4] = “102” 与子字符串str[4, 6] = “201”有相同数目的0, 1和2输入:
2016-11-07 00:06:26 1806
翻译 第N个偶斐波那契数
原文地址:Nth Even Fibonacci Number 已知一个n,找到第n个偶斐波那契数。Input : n = 3Output : 34Input : n = 4Output : 144Input : n = 7Output : 10946下面的数字序列就是斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ….对于序列
2016-11-06 14:36:03 565
原创 在VS(Visual Studio)中运行带有参数的控制台程序
在项目(Project)菜单中打开当前程序属性(Properties)→配置属性(Configuration Properties)→调试(Debugging)→命令参数(Command Arguments),然后将需要的参数写在命令参数后面,有多少写多少,参数间用空格间开即可。如图所示:
2016-11-06 13:57:11 14663
原创 OpenCV在Microsoft Visual Studio 2010环境中的配置
一、下载OpenCV笔者下载的版本为OpenCV 2.4.1;将文件解压到指定的文件夹,例如:D:\Program Files (x86)\opencv。二、配置环境变量:环境变量在:计算机(Windows 7/Vista)→属性(右键)→高级系统设置(显示器左栏)→环境变量。在环境变量Path(用户与系统随便选一个)中配置:D:\Program Files (x86)\opencv\build\x
2016-11-06 13:52:56 556
原创 Java虚拟机工具之堆栈跟踪工具jstack定位死循环
jstack命令用于打印Java进程,core文件或者远程调试服务器的堆栈跟踪记录,它会打印类名,方法名,字节码索引(BCI),如果允许的话,还会打印出行号。jstack主要用于生成线程快照,这样可以定位长时间停顿的原因,比如死锁或者死循环。jstack的命令格式jstack [ options ] pid我在代码里特意写了个死循环,代码如下:/** * Created by kevin on 1
2016-11-04 16:40:04 4360
翻译 丑数
原文地址:Ugly Numbers一个数的因数只有2,3或者5这样的质数,那么这个数就被称为丑数(Ugly Numbers)。序列1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, …就是前11个丑数。为了方便,把1也包括进来了。写一个程序找出并打印第150个丑数。方法1(简单)算法循环所有的正整数,直到丑数的个数小于n,如果一个整数是丑数,那么就增加丑数数目。检查一下这个数字是
2016-11-04 10:58:19 376
OSGi in Action
2017-10-05
apt-mirror-api-0.1.jar
2016-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人