- 博客(38)
- 资源 (3)
- 收藏
- 关注
原创 java控制台读入
import java.util.Scanner;public class Test{ public static void main(String args[]) { Scanner sc = new Scanner(System.in); int num = 0; while(sc.hasNext()) { num = sc.nextInt(); Syst
2013-03-29 10:18:59 1024
原创 最小差值的划分
问题:对一组数据分成两部分,使其差值最小。最小差值的划分,就是给一组数,划分为两组总和差值最小的数字,从大到小输出两个和就好了,不要具体的划分结果。就把它当成一个大小为所有数字之和的一半的0-1背包来求。当背包容量为所有数之和一半时,能放入背包的总重量对一组数据分成两部分,使其差值最小。#include#include#includein
2013-03-28 23:18:29 2638 1
原创 字符串压缩
/*通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"
2013-03-28 21:37:04 1055
原创 Java Jsoup从Html中解析歌词
import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.IOException;import java.io.UnsupportedEncodingException;
2013-03-26 21:41:05 897
转载 Java打印charArray.toString()
我只是想简单的吧char 数组中的内容打印出来:public class Test{ public static void main(String[] args) { char[] someArray = { 'J', 'A', 'V', 'A' }; System.out.println(someArray.toString()); }}结果并不如我预想那样,打
2013-03-26 21:08:17 2222
原创 修编字符串(stringEdit)
问题:给出字符串s,t对s(原串)进行minimum次数的修改变为t(目的串)。修改方式:deleteinsertreplaceps:据说此问题是1974年左右提出的,方法也是那个时代。当然此方法就来源于前辈,在此作为后来者学习之,看到网上好多人列举出好几种方法,其实本质还得dp解决。此题与lcs有异曲同工之妙处,用dp解决。
2013-03-26 10:58:14 931
原创 开始了业余生活
在Cutting看来,Google的成功主要取决于,反向排序之后再存储的设计和对自己技术的自信。Bot是internet智能程序最简单的形式,它的名字来源于机器人这一术语。任何一种能访问Internet,并取回数据的程序都可以被称做为Bot程序
2013-03-26 09:45:10 699
原创 lcs(dp)
最长公共子序列X = {x1, x2, ......, xm}Y= {y1, y2,......,yn}希望找出X,Y的一个最长公共子序列1.描述最有子结构设Z = {z1, z2,。。。。。。, zk}是X, Y的一个最优解。当xm = yn时,Zk-1是Xm-1,Yn-1的最优解当xm != yn时,且xm!=zk,则Zk是Xm-1, Yn的
2013-03-25 19:20:00 850
原创 二叉树所有分支数
f(b)表示所有分支结点个数f(b) = 0; f(b) = f(b->left) + f(b->right) + 1; dan fen zhi or shuang fen zhif(b) = f(b->left) + f(b->right); leafnodes
2013-03-25 12:08:58 5079
原创 二叉树双分支数
f(b)表示二叉树b中所有双分支结点个数f(b) = 0; b == NULLf(b) = f(b->left) + f(b->right); doublef(b) = f(b->left) + f(b->right); (single or leaf nodes)int getDoubleSonNodes(Node* root){ if (root == NU
2013-03-25 12:04:05 1452
原创 二叉树单分支数目
f(b)表示单分支结点数f(b) = 0; b == NULLf(b) = f(b->left) + f(b->right); b为单分支f(b) = f(b->left) + f(b->right);int getSingleSonNodes(Node* root){ if (root == NULL) { return 0; } else if (root
2013-03-25 11:59:56 3607
原创 二叉树叶子数
f(b)表示二叉树的所有叶子结点个数:f(b) = 0; b == NILf(b) = 1; b为叶子结点;f(b) = f(b->left) + f(b->right);int getLeafNodes(Node* root){ if (root == NULL) return 0; if (root->left == NULL && root->ri
2013-03-25 11:50:58 1208
原创 二叉树高度
设f(b)表示二叉树的高度:f(b) = 0, b == NULL;f(b) = MAX{ f(b->left), f(b->right) } + 1;int getDepth(Node* root){ if (root == NULL) return 0; else { int leftDepth = getDepth(root->left); i
2013-03-25 11:40:04 988
原创 层次遍历binary tree
总结:问题1:打印二叉树第k层的所有结点,成功return 1;失败return 0;问题2:分层遍历binary tree,每层单独打印成一行。利用二叉树本身定义的递归性。问题1:要求访问二叉树第k层的结点,利用递归性,转换成,访问以此二叉树根节点的左右子结点为根的两颗子树中的k-1层的结点。// 输入root为根的level层所有结点(从左到右)// 成功
2013-03-25 11:32:11 757
原创 求二叉树结点的最大距离
总结:距离:定义为2个结点之间的边的个数。相距最远的两个结点一定是:1.两个叶子结点。or 2.根到叶子结点。1.两个叶子结点时分两种情况:路径经过根节点(树的根,or,左右子树的根),则,此路径为叶子属于根的左右子树,且是分别到根最远的结点。2.若不经过根,叶子属于根的子树之一。他们是该子树中相距最远的两个结点。此时问题转化为在子树上的解,此性质用动态
2013-03-25 09:12:31 811
原创 atoi
atoi()总结:1.函数功能:把字符串转换为整形2.函数原型int atoi(const char* nptr);3.参数说明如果第一个非空格字符不存在或者不是数字也不是正负号,则返回零,否则进行字符转换,之后检测到非数字字符(包括结束符'\0')时停止转换,返回整形数。4.头文件写代码时:0.测试字符串是否为空如果为空,返回0ps
2013-03-24 22:44:07 783
原创 两个链表公共结点
对于两个单链表,如果有公共结点,那么两个单链表的拓扑结构为Y型。可以想到尾结点是相同的。1.从尾结点开始逆推,知道两个结点不相同(用栈)2.因为从尾结点到第一个公共结点的长度是相同的,所以尾结点对齐,较长的链表先走若干步,然后与较短的链表齐头并进。#include using namespace std;struct ListNode{ int value; Lis
2013-03-24 20:48:11 920
转载 人生之所以不同
每天都在相同的忙,也许有一天,我们就会因某人取得了巨大成绩而诧异不已。就像我们和所有人都采取同一种方式走路,抬起左脚,放下,再抬起右脚,再放下;一直持续这个动作。从表面上看动作并无差异,但从实质上看却极不同,有的人是在原地踏步,有的人是在前行,而杰出者却在向上攀登。
2013-03-23 16:51:51 612
转载 BufferedImage()函数
本文以例子代码的形式讲述在Java下如何创建一个BufferedImage对象。技术实现:导入包: import java.awt.Frame;import java.awt.Graphics;import java.awt.Graphics2D;import java.a
2013-03-23 10:40:09 1051
转载 request.getSession()
request.getSession(true):若存在会话则返回该会话,否则新建一个会话。request.getSession(false):若存在会话则返回该会话,否则返回NULL
2013-03-22 12:43:33 793
转载 java中多态
其实多态是一种面向对象的设计思想,也就是只给接口,让你去实现(可以替换实现),就是设计和实现的分离,这个做法有利于软件的重用。 举个例子,你创建了一个动物的抽象类或接口,里面有一些接口方法,你造了一个动物园,然后有各种动物的奔跑、叫唤、吃食等动作作为方法,但你并没有实现它,在没有任何动物之前你只用知道如何把这些动物都圈到笼子里,就有动物园了。 然后,从别处给你运来了老虎、狮子、猴子、狗、猫这些动物
2013-03-22 08:51:24 617
转载 eclipse设置字体大小
window--preferences--General--appearance--colors and fonts--java-- "java editor text font "然后点change,可以设置字体的大小
2013-03-22 08:31:10 813
转载 System.out.println()和out.println()
图显IP:System.out.println()和System.out.print()等都是系统后台输出,也就是控制台输出,用于调试或者日志输出PrintWriter out=resp.getWriter(); out.println(...);一般是用于响应用户提交的请求输出相关的信息,多用于web应用,当然,jsp也可以直接使用out.print,可以在页面直接输出内容
2013-03-22 08:20:28 754
转载 java的Random类
Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机
2013-03-22 08:05:11 558
转载 StringBuffer
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在
2013-03-22 08:04:03 709
原创 1.1 最长等值序列
最长平台public class Test{ public static void main(String args[]) { int a[] = new int[0]; //{1, 2, 2, 3, 3, 3, 4, 4, 5}; System.out.println(longest_plateau(a)); } public static int long
2013-03-20 16:01:20 1020
原创 关于回溯法的idea
回溯法:实质先序遍历一个“状态树”的过程。回溯法:子集树与排列树子集树:当所给问题是从含有n个元素的集合S中找出满足某种性质的子集,解空间是子集树。排列树:当所给问题是从n个元素的集合S中找出满足某种性质的排列时,解空间为排列树。现有整型数组{1,2,4,3,5,8},写出一个函数,找出所有和为10的集合。(回溯法:子集树)子集树算法程式:void
2013-03-20 09:42:45 1023
原创 Union_Find_Set
并查集,又名不相交集合数据结构(disjoint-set data structure)DISJOINT-SET的精妙之处在于用树表示集合,而树的具体形态无关紧要。我们规定根节点作为树表示的集合的代表元。并查集对集合的操作主要有3个:make_set(x), union(x,y), find_set(x).make_set(x):建立新集合,唯一成员是x。构造只
2013-03-20 08:04:25 794
原创 图的一些总结
Floyd:求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。 Dijkstra:求单源、无负权的最短路。时效性较好,时间复杂度O(V^2)。可以用堆优化。 Bellman-Ford:求单源最短路,可以判断有无负权回路(若有,则不存在最短路),时效性较好,时间复杂度O(VE)。SPFA:是Bellman-Ford的队列优化,时效性相对好,时间复杂度
2013-03-19 22:58:34 657
原创 KMP
KMP算法记住一句话:构造最大长度后缀数组1. 根据当前的next[j] = k; 进而推断next[j+1] = ?; 思想是:如果当前P(j) == P(k), 就把最长后缀伸长一点;否则区间变小。2.KMP是和getNext(); similar3.记住那句话:构造最大长度后缀4.对getNext();优化import java.io.*;publ
2013-03-19 15:40:20 663
转载 交大研究生入学考试题
1 2 3 4 5 67 8 9 0 说某移动电信运营商开发了一个名为“争霸”的游戏,为鼓励用户参与,凡签约用户均可获得前三位为888的手机号码,但这样的话就有10的8次方种可能,现在给出一种限制条件减少号码数量,就是两个相邻号码之间的关系必须满足象棋里的“将步”即:给你前三位都是888 后面8位是上面的数字 每个数的相邻只有有限个数字比如888
2013-03-17 21:56:35 1114
原创 关于python
1. raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。2. 可以一起使用range()和len()来迭代一个索引序列例如:a = ['Nina', 'Jim', 'Rainman', 'Hello']for i in range(len(a)):
2013-03-13 21:01:24 713
转载 python range()
在以往用range函数的时候从未深入的了解过,只是简单的这样用,而从未去想其他的>>> range(1,5) #两个参数的,从1到5[1, 2, 3, 4]>>> range(1,5,2) #三个参数的,从1到5,间隔数字为2,所以显示奇数 [1, 3]>>> range(5) #一个参数的,默认start是从0开始,end是5[0, 1, 2, 3, 4]今天看
2013-03-13 19:45:09 847
转载 排列组合用图的遍历解决
算法程序题: 该公司笔试题就1个,要求在10分钟内作完。 题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。基本思路:1 把问题归结为图结构的遍历问题。实际上6个数字就是六个结点,把六个结点连接成无向连通图,对于
2013-03-11 19:48:12 1021
json以及json依赖的包
2013-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人