自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Neil_Li's Blog

求知若渴,虚心若愚。

  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode:判断单链列表是否存在环

判断单链列表是否存在环,即某个节点的next指向链表中在它前面的节点,这样在链表尾部形成一环。1.判断是否存在环用一个fast指针,一个slow指针,slow每次移动1,fast每次移动2.若链表存在环,移动快的fast指针一定在环内追赶上移动慢的slow指针,则相遇2.找到环的入口当两指针第一次相遇后,证明存在环。现在将fast指针重新设为head,slow指

2015-01-17 15:58:48 1124

转载 JTextPane的特性

JTextPane的特性:    相信大家都有用过Word来写过报告或文章,那么你一定会知道我们在Word中可以对文章中的文字做很多的变化,这些变化都是属于文字的“属性”变化。由于在JTextPane中产生的效果几乎都是由属性的变化而来,所以改变属性的类组件在JTextpane中是少不了的。因此在介绍如何构造JTextPane之前,我们要先介绍两个在JTextPane中常用到属性类:

2013-03-25 20:40:38 909

原创 哈弗曼编码加密程序Decoder

package 哈弗曼编码;import java.util.*;public class Decoder { private String binCode; private BinaryNode root; private HashMap newDic=new HashMap();//解码时要根据二进制码的值得到字符,因此新的字典要以String作为Key private Stri

2013-03-14 19:31:04 794

转载 ubuntu-配置JAVA和Eclipse

1、下载JDK就说ubuntu10.04吧,默认安装的是OpenJDK,虽然这个JDK可以用,但开发中保证环境一致性,一律使用Sun JDK,这里我用的是JDK6。首先,官网下载JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html我下载的是Java SE 6 Update 29ht

2013-03-13 23:24:18 593

转载 Linux下移动CMCC WLAN自动连接认证

山东移动的WLAN目前覆盖了很多居民区、公共场所和高校。价格低廉,速度尚可,普通网络应用绰绰有余,准备把家中的10M廉通宽带打入冷宫。不过CMCC WLAN每次都要Web页认证比较麻烦。幸亏Linux系统的Network Manager有脚本钩子,可以很轻松地解决此问题。首先先连接一次CMCC接入点,NetworkManager会自动创建一个连接,可以将其设置为自动连接,这样每次开

2013-03-13 22:34:00 13533

原创 哈弗曼编码加密程序Encoder

package 哈弗曼编码;import java.util.*;public class Encoder { private String str; //要进行编码的原始字符串 private BinaryNode root; //哈弗曼树的根节点 private String binCode; //编码后得到的二进制字符串 private HashMap dic=new Hash

2013-03-13 19:37:44 705

原创 Java输入输出IO学习

1.File类:File类是与平台无关的文件和目录,如果希望操作文件和目录都可以使用File类来完成。File可以用来新建、删除和重命名文件和目录,但是不能用来访问文件内容本身!因此如需访问文件内容本身,需要用I/O流。File类创建的时候不要求路径文件真实存在,打开一个不存在的文件时也不会抛出异常,因为本身File对象就有exists()方法判断是否存在,不存在的情况下还可以通过crea

2013-03-05 07:00:37 648

转载 Python 文件目录操作

os和os.path模块os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回但前目录('.')os.chdir(dirname):改变工作目录到dirnameos.path.isdir(name):判断name是不是一个目录,name不是目录就返回falseos.path.isfile(na

2013-03-04 23:58:00 354

转载 推荐阅读:十年学会编程

十年学会编程著者: Peter Norvig翻译: Dai Yuwen为何人人都这么着急?信步走进任何一家书店,你会看到名为《如何在7天内学会Java》的书,还有各 种各样类似的书: 在几天内或几小时内学会Visual Basic, Windows, Internet等等,一眼望不到 尽头。我在Amazon 上做了如下的 强力检索 : pubdate: af

2013-03-04 20:45:25 346

转载 安装 netbeans 中国教育考试版(2007)出错

在你的电脑里装一个1.6以上的JDK(如jdk1.6.0_10)到C:\解压的文件中有个netbeans-ncre2007文件夹里面的etc文件夹有个nbncre.conf打开:# default location of J2SE JDK, can be overridden by using --jdkhome  switchnetbeans_jdkhome="c:\j2sd

2013-03-03 23:17:17 3010 2

原创 读书小记:《大数据时代》

读完已有几天了,拖了几天才来写这篇。刚开学第一周,自己可以用来学习的时间变少了,导致零碎的时间都被拿来学习linux和python,暂时也木有更新。这本大数据时代可谓是了解大数据的非常有名的入门读物,不需要很高深的相关知识,全书通俗易懂,所述的观点又让人读完后印象深刻,前后一共看了大概两周……简陋的小记一下。所谓大数据时代,是指随着相关统计技术和工具的进步,人类对于数据的获取与分析能力

2013-03-01 18:44:45 589

转载 vim基本命令

1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行其它命令使用4.:r filename#读入一个文件内容,并写入到当前编辑器中5.:w newfilename#将该编辑器中的内容写入到一个新文件中6.:w

2013-02-22 11:13:12 326

转载 Java正则表达式的解释说明

表达式意义:1.字符x    字符 x。例如a表示字符a\\    反斜线字符。在书写时要写为\\\\。(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在第二次解析时再解析为\,所以凡是不是1.1列举到的转义字符,包括1.1的\\,而又带有\的都要写两次)\0n    带有八进制值 0的字符 n (0 \0nn    带有八进制值 0的字符 nn

2013-02-20 16:06:59 1970

原创 以AVL树为例理解二叉树的旋转(Rotate)操作

树旋转是在二叉树中的一种子树调整操作, 每一次旋转并不影响对该二叉树进行中序遍历的结果. 树旋转通常应用于需要调整树的局部平衡性的场合. 树旋转包括两个不同的方式, 分别是左旋转和右旋转. 两种旋转呈镜像, 而且互为逆操作. 平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作

2013-02-19 15:43:42 11824

原创 Python学习笔记:异常

Python 用异常对象来表示异常情况。如果异常对象并未被处理或捕获,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。实际上每个异常都是一些类的实例,这些类可以被引发,并且可以用很多方法进行捕获,使得程序可以进一步对错误进行处理。使用raise语句引发异常:为了引发异常,可以使用一个类(Exception的子类)或者实例参数调用raise语句,程序会自动创建实例。

2013-02-18 19:56:40 613

原创 Python学习笔记:函数与类

函数:1.创建函数:函数是可以调用的(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值。内建的callable函数可以用来判断函数是否可调用:>>>import math>>>x=1>>>y=math.sqrt>>>callable(x)False>>>callable(y)True使用 def 语句定义函数:def hello(name

2013-02-17 10:07:08 1806

转载 设置ubuntu终端的命令行颜色

用ubuntu的终端时间长了会眼花,因为输入和输出都是一个颜色的,当然 ls 不算了,这个还是有颜色的,就想如果终端的输入和输出能用颜色区分该多好啊,google后,搜到的大部分都不是我这个意思。偶然看到一篇,效果凑合吧, 只把命令行提示符的颜色变了一下,这样也行吧,至少两次命令行之间的输出容易区分了打开Home目录的.bashrc文件,添加下面的内容到最后一行:$ ged

2013-02-15 23:41:20 7032

转载 Ubuntu如何默认启动到命令行

方法一:ubuntu在6.10开始用upstart替代init,主要脚本都在/etc/event.d下面,默认情况下/etc下没有inittab文件,但是默认情况下inittab虽然不存在,ubuntu用upstart替代init,但还是和init保持兼容。方法是自建一个inittab文件,写入一行id:3:initdefault: ,然后进入/etc/rc3.d,将S13kdm移动到其他

2013-02-15 23:22:58 607

转载 ubuntu 修改命令行模式下ls的颜色

切换到命令行模式下之后,ls的结果中,文件夹都显示为深蓝色,配上黑色的底,根本看不清什么东西,于是想要修改ls的颜色,在网上找到如下方法,可用。原文地址http://hi.baidu.com/windhl/blog/item/e2d4b60f5e0ce6e1aa64571a.html因为ubuntu下的/etc/目录里没有DIR_COLORS, 所以费了点劲儿1. 利用di

2013-02-15 22:21:43 934

原创 简单数据结构实现——二叉查找树

二叉查找树(Binary Search Tree)具有以下基本性质:1.若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;2.若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值;3.它的左右子树也分别为二叉排序树。通常采取二叉链表作为二叉排序树的存储结构。在java中构造了如下的记node类来代表单个节点:public class BinaryNo

2013-02-14 15:49:42 321

原创 Python学习笔记:条件、循环和其他语句

1.打印:print 语句可以用来打印由逗号隔开的多个值。如果语句以逗号结尾,后面的print 语句会在同一行内继续打印。2.导入: 如果不想使用导入的函数名,或者导入的多个函数名冲突,可以使用import...as...语句进行函数的局部重命名。3.赋值:通过序列解包和链式赋值功能,多个变量赋值可以一次性赋值,通过变量赋值可以原地改变变量。4.块:块是通过缩排使语句成组的一种方式。他

2013-02-12 22:06:36 409

原创 Java泛型学习

Java从JDK1.5开始支持泛型,泛型的本质是参数化类型,即把类型作为参数一样进行传递。Java在引入泛型特性时的一个重要原则是:保证如果程序在编译时候没有警告,运行时就不会产生ClassCastException异常。1.泛型的使用:List strList=new ArrayList();创建带泛型集合的方法:在集合接口、类后增加尖括号,里面放一个数据类型,即表明这个

2013-02-12 06:55:57 688

原创 Python学习笔记:字符串基本操作

1.所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。但是因为字符串是不可变的,所以分片赋值不合法。2.字符串格式化的基本实现用字符串格式化操作符:百分号%,左侧放置格式化字符串,右侧放置希望格式化的值。右侧只有使用元组和字典可以格式化一个以上的值。如:>>> format="hello, %s. %s are you!">>

2013-02-08 22:58:00 331

原创 Python学习笔记:列表,元组和字典

简记几点重要的初学知识:1.序列:是一种数据结构,包含的元素从0编号。典型的序列包括列表、字符串、元组。其中,列表是可变的,元组和字符串是不可变的。通过分片操作可以访问序列的一部分,分片需要两个索引号来指出分片的起始和结束位置。想要改变列表,可以对相应的位置进行赋值,也可以使用赋值语句重写整个分片。2.成员资格:in操作符可以检查一个值是否存在于序列(或者其它容器)中。对字符串使用in操作

2013-02-08 21:56:29 469

原创 Java 多线程学习之生产者消费者模型:一个较完善的实现

生产者、消费者模型是学习多线程的时候的一个很好的练习模型。该问题专业的说法应为:有限缓冲问题。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的作用是生成一定量的数据放到缓冲区中,然后重复此过程。而消费者的作用则是消耗这些数据。问题的关键是要保证生产者不会在缓冲区满时加入数据,消费者也不会再缓冲区空时消耗数据。解决问题的方法可以

2013-02-08 20:31:39 2376

原创 简单数据结构实现——双链表

链表 (Linked List),基本数据结构之一,是一种逻辑上的线性表,但是物理存储上是非线性的。在存储空间上分散排布,通过构造节点,以及节点中的前驱后驱指针来串联起所有的节点,顾名曰链表。这是一种随用随建的结构,删除起来也非常方便。链表的强项在于插入删除操作,但是链表的遍历是弱项,不能做到随机遍历,只能从头到尾顺序遍历。链表的还有一个好处是大小没有任何限制,java中自带的集合 ArrayLi

2013-02-07 15:55:40 590

原创 简单数据结构实现——队列

队列 (queue) ,基本数据结构之一,属于FIFO(先进先出)数据结构。队列只允许在前端 (HEAD) 进行入队(插入)操作,只允许在后端 (TAIL) 进行出队(删除)操作。单队列可以使用链表来实现,实现非常简单,队列的长度也没有限制,但是插入和读取的时间代价较高。循环队列可以使用数组来实现,因此操作起来很快,但是长度一般固定。但是可以通过设计一个扩大容量的方法来使其长度可变

2013-02-07 15:31:55 765

原创 简单数据结构实现——堆栈

堆栈 (Stack),最基本的数据结构之一,先进后出的FILO典型结构,主要操作有push(),pop(),top()方法,分别为压栈,出栈,返回栈顶元素。在下面给出的代码实现中,增加了一些辅助的操作,包括size(), trim(), enlarge(), isEmpty(), toString()方法。并且因为还没有系统的学习泛型,因此在这里给出的是基于int型的简单实现。运用泛型的通

2013-02-05 22:27:00 400

原创 Java 二级考试试卷汇编纠错

2010年(秋)笔试试卷选择题7.速度单位dpi是鼠标移动时每英寸点数14. 通过HFC接入因特网时采用的网络是有线电视网16.ASCII字符集有128个字符,不是256个,第8位闲置不用。23.switch语句后必须要有括号 ( ), switch只支持int, byte, short, char 类型,1.7以上jdk支持String类型。25.byte b=011,

2013-02-05 16:09:23 421

原创 java 单例类实现

今天在做java二级模拟卷,学到一个知识点,单例类的实现。如果一个类始终只能创建一个实例(对象),则这个类被称为单例类。声明单例类的基本要点是:设立一个变量来保存本类的实例,使构造器私有化,使用静态方法返回已创建的本类的唯一实例(若尚未创建,则在该方法中创建)。给出一个简单的实现例子:Singleton类。class Singleton{ private static S

2013-02-05 10:09:25 293

原创 简单排序算法实现——堆排序

堆排序 (Heap Sort) 是利用了数据结构:完全二叉树来进行排序的算法。其基本原理先要将完全二叉树以数组的形式实现出来。再者,用于堆排序的完全二叉树必须满足最大堆(Max Heap) 的性质,即任意一个非叶子节点上的值都应该比其左孩子和右孩子的值小,满足该性质的即称为最大堆。先阐述在数组上实现完全二叉树的原理:对于数组下标从0开始的java语言,对于给定的节点下标 i ,其父节点下标

2013-02-04 22:03:24 534

原创 读书小记:《苦才是人生》

这几天在学校做数学建模,白天一直比较忙,计算机内容的学习暂停了,算法的实现练习也有所搁置,不过书倒是一直在看。刚刚看完了《苦才是人生》这本书,简单做个小记,简述一下看完后对于佛教,信仰,人生的一点点小感想。《苦才是人生》可以算是一本简介佛教一些基本思想的书籍,似乎是属于藏传佛教类的,作者是索达吉堪布,似乎算是一位德行很高的上师。看完以后,全书简介易懂,用很多小的故事阐述了很多基本的,但

2013-02-04 08:52:09 509

原创 简单排序算法实现——快速排序

快速排序 (Quick Sort) 是使用“分治”思想的又一个排序算法,通过将序列不断分为子序列,最终达到单元素情况来解决问题。其大致实现过程是从待排序序列中挑选出一个主元 (pivot element,又叫枢纽元),然后将剩下的元素分割成两个部分,一个部分是小元素部分,其中所有的元素都比主元小;另一个是大元素部分,其中所有的元素都比主元大。在这一步分为小元素部分与大元素部分的过程中,每个部分

2013-01-31 15:46:00 648

原创 简单排序算法实现——桶排序

桶排序 (Bucket Sort) 又称箱排序,是鸽巢排序的一种归纳结果(有关鸽巢排序的内容留待后补)。桶排序是比较特殊的排序,它不属于比较排序,即有序的建立不是基于元素的比较与交换而消除逆序得到的,比较形象的讲,其对有序的建立是基于桶数组在物理内存上本身的连续性和有序性,将其作为索引,然后建立该索引与待排序数组的映射关系,然后通过遍历索引而倾倒出待排序元素,则倾倒的过程自然遵循桶数组的物理内

2013-01-30 18:18:30 439

原创 简单排序算法实现——选择排序

选择排序( Selection Sort ) 是基本排序算法之一。其基本工作原理是将数组的后端部分保留为无序区,在前端逐渐建立有序区。在每一次躺的操作中,从后端无序区中挑选出最小的元素,然后与无序区的第一个元素交换,于是有序区的范围被扩大了一个元素。如果某个元素已经位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素后,它们当中至少有一个被移动到了最终位置上,因此对n个元素的

2013-01-30 09:16:47 497

原创 简单排序算法实现——归并排序

归并排序(Merge Sort) 是一种采用了分治(Divide and Conquer) 想法的排序算法。该算法中基本的操作是合并两个已经排序的表,并将输出放到第三个表中,该过程可以通过对输入数据一趟排序来完成。基本的合并算法是取两个输入数组A和B,一个输出数组C,与三个计数器Actr,Bctr,Cctr,它们初始置于对应数组的开始端。A[Actr]和B[Bctr]中的较小者

2013-01-29 21:18:53 862

原创 读书小记:《程序员的思维修炼》

《程序员的思维修炼——开发认知潜能的九堂课》得知这本书是在别人的博客中看到了推荐,然后到豆瓣上一搜发现评价不错,于是便拿来一读。书不厚,也不难读,但是前前后后读了20天,算是读的进度很慢的一次了。虽然书给我的第一印象是比较休闲的那种,但是真正翻开来以后里面的东西还是很充实的,更重要的是全书给我一种很严谨的感觉,书中用到的论据,例子都以很专业的格式标注了source,在这种类型的

2013-01-29 09:05:32 432

原创 简单排序算法实现——希尔排序

希尔排序也称递减增量排序算法,是在插入排序的基础上得到的高速稳定的排序算法,是最早冲破二次时间屏障的排序算法之一。希尔排序使用一个增量数列:h1, h2, …… ht, 要求h1=1。(该要求的存在使得希尔排序在最后一次h1=1的时候实质上进行了普通插入排序)。在每一趟中,使用当前的增量hk,对假象的每隔hk个元素的一个序列进行一次插入排序,一趟完成后对于每个i我们都有a[i]即所有相隔h

2013-01-28 14:55:29 543

原创 简单排序算法实现——插入排序

插入排序 Insertion Sort 为基本排序算法之一。其工作原理是将数组的后端保留为无序序列区,在前端从前往后逐渐建立有序序列区。每一次挑出后半部分无序区的第一个元素作为当前操作元素,然后从该位置向前逐个扫描,找到正确的位置进行插入,是为插入排序。在从当前位置向前扫描的过程中,如果还没有抵达正确位置,则需要有一个元素向后挪位的操作,即代码中的a[j]=a[j-1], 这是插入排序

2013-01-28 13:47:42 2748

原创 小技巧:打造个性化U盘图标

1.首先准备的图片是.ico图标格式的,可以从网上找到,也可以使用专门的软件制得。2.把该.ico图标文件放在U盘的根目录之下。3.在U盘根目录下新建记事本,输入:[autorun]ICON=name.ico,  0其中name.ico 即图标文件的文件名。保存记事本,保存名为autorun.inf 注意后缀名修改为.inf4.拔下U盘重新插

2013-01-28 11:29:42 410

扫雷完美实现(带鼠标左右键算法分析)

用java写的扫雷游戏,应该算比较完美了。完全模拟windows自带扫雷的一切操作,包括自动展开,和左右键同时按自动开块,也可以支持行列数和雷数的自定义,图片UI也是自己用PS亲手做的哦~

2013-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除