自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(171)
  • 资源 (6)
  • 收藏
  • 关注

原创 Minimum Size Subarray Sum 和满足要求的最小窗口

这个问题跟前面的最小窗口子串问题是类似。这里会介绍时间复杂度分别为 O ( n ) 和 O (n log n )的2种解法。有2个指针,start, end 表示子串的开始和结束。1. 从start index = 0 开始,先找到和满足要求的子串。2. start++看看有没有更小的子串。

2016-07-06 14:05:43 452

原创 Minimum Window Substring 最小窗口子串

这道题目的思路跟 找到链接所有单词的子串有些类似,我们容易得到一个时间复杂度为O( n^2 )的解法。我们用start和end来标记子串的开始和结束,每次从start index = 0开始,找到合法的子字符串。

2016-07-06 12:37:52 489

原创 Substring with Concatenation of All Words 找到连接所有单词的子串(加解决找出xx子串的通用模板)

在这里,我会对这道题目进行分析,并给出处理这类问题的通用模板。根据题目的意思,我们要找到子串开始的下标,这个子串满足它是words中,所有单词的连接。(单词出现的顺序是无关的)一个很自然而然的想法是这样的:每次我从一个begin index开始,向后看,如果当前的单词在words中出现且没有被标记,那么我就可以继续往后找

2016-07-06 10:40:27 503

原创 Wildcard Matching 通配符匹配

在这里,需要实现2种通配符, ' ? ' 和 ' * ',其中?可以匹配任意的字符, * 可以匹配0到多个字符。我们假设有一个ismatch[ i ] [ j ] 表示,s [ 0... i ] 与 s[ 0 ...j ] 的匹配情况。ismatch[ 0 ] [ 0 ] 表示S为空,且P为空,此时ismatch[ 0 ][ 0 ] = true。下面来考虑general的情况。如果我们已经计算了ismatch[ i - 1][ j - 1],那么如果p[ j - 1] != ' * '

2016-07-05 16:35:14 350

原创 Group Anagrams 同字母异序String的分组

ate, eat, tea这些单词中的字母是相同的,只是顺序不同,所以被分到了同一组。如何确定2个String是同字母异序的呢?如果ate里面的字母进行排序,变成 aet。同样的eat里面的字母进行排序,变成aet。比较排序后的结果,就能确定是不是同字母异构的了。

2016-07-05 13:33:12 593

原创 Multiply Strings 大数乘法

假设有: 4 5 6 7 2* 5 4------------------ 1 8 2 6 8 8 (4与45672相乘) 2 2 8 3 6 0 ( 5与45672相乘)最后将相乘后的结果相加,可得 2466288。所以,我们事先一个1位数与多位数的简单乘法和大数加法就可以实现大数乘法的。在这里,介绍一个更加简单容易实现的方法。从右到左,对每个数字pair做乘法,然后将相乘后的结果加在一起。

2016-07-05 12:36:51 409

原创 Hibernate Mapping 3 : Many To Many

Many To Many的映射关系:比如有好几项任务,每个人可以接多个任务,一个任务可以由多人做。任务Event 和 委派的人 Delegate是 Many To Many 的关系,要将这样的实体联系起来,我们需要一个额外的表,这个表中的EventId来自Event表,DelegateId来自Delegate表。通过这个表,我们可以知道某个Event有几个Delegate,某个Delega

2016-07-04 19:19:54 312

原创 Hibernate Mapping 2 : One to Many

One to many类型的mapping,比如一个大学可以有多个学生,而一个学生当前只能上一个大学。所以在College中会有一个Student的list@Entitypublic class College { private int collegeId; private String collegeName; private List students;}Student中会有

2016-07-04 18:33:21 275

原创 Hibernate Mapping 1 : OneToOne

Hibernate的目的是帮助我们更好地持久化实体(Entity)。实体与实体的间的关系一般有3种。1对1:比如一个人有也只会有一个自己的详细信息,可以对应Person 和 PersonDetail类,Person与PersonDetail是1对1的关联。1对多:比如一个大学可以有很多的学生,可以对应College和Student类,College和Student是1对多的关联。多

2016-07-04 18:16:10 388

原创 Hibernate Inheritance Mapping

假设我有3个对象, Project, Module, Task。其中,Project是父类public class Project { private int projectId; private String projectName;}Module 继承了Project,又有自己新的属性moduleNamepublic class Module extends Project{

2016-07-04 15:21:45 396

原创 Hibernate One class to two table or Two class to one table

利用Hibernate可以很方便地将对象持久化。但有时候,我们想要将一个class持久化成2张表,这往往是为了数据库的范式需求。而有时候,我们可能希望将2个class持久化到一张表中去。利用Hibernate可以很方便的实现。1. One class to two table为了实现这个,我们需要告诉hibernate我们要创建哪两张表和class属性分别属于哪个表。pac

2016-07-04 13:21:04 433

原创 Hibernate Table annotations

在这里回顾下hibernate对table的信息标注。可以getxxx()函数前面,用@进行指明。指明table 名字:          @Table(name="EmployeeInfo")  指明column 名字:      @Column(name="EmployeeId") 同时可以对column的属性进行设置值非空:

2016-07-04 10:25:39 665

原创 Hibernate Learning

今天主要学习跟Hibernate相关的知识。主要看的视频,来自Java Hibernate Tutorial Part 1 - setup 可以说是手把手的教,非常基础易懂,视频在youtube上的,我下载下来了,方便不翻墙也能看了。百度云的链接 密码: xugu。Hibernate相当于是对java 操作sql代码的封装,能帮我们简洁地对数据库进行交互,不像之前的网上书店,需要自己写

2016-07-03 21:25:59 289

原创 osx + Intellij + mysql + jsp + tomcat 之java web项目-网上书店(下)

1. Servlet 与Jsp对于servlet,一般是继承HttpServlet代码,重写doGet或者doPost函数。接受req请求,返回resp应答。需要在web.xml中配置servlet信息。1. 路径mapping: 指定servlet name 和java文件路径信息2. url mapping: 指定servlet name 和 url路径信息对于jsp

2016-07-02 19:53:09 1005

原创 osx + Intellij + mysql + jsp + tomcat 之java web项目-网上书店 (中) (Intellij 中代码配置)

之前用JetBrains的 pycharm写python代码的时候就觉得很顺手,现在写Java代码更是不能错过 Intellij IDEA,比Eclipse更加好用。 在之前的博文中讲过IntelliJ IDEA 配置 Tomcat8,现在我们的工作就是把代码放到Intellij中去。先创建一个项目,new project -> Java Enterprise -> Web Applica

2016-07-02 19:28:34 1014

原创 osx + Intellij + mysql + jsp + tomcat 之java web项目-网上书店 (上) (mysql的配置)

j2ee项目网上书店完整代码 这是一个我12年末写的java web项目,实现了一个简易的网上书店功能。支持用户和管理员两种模式。现在,我想把它重新部署一下,顺便复习一下j2ee方面的知识。这个代码可以说是非常原生的,没有利用任何的框架,完全利用servelet和jsp写的。首先,需要做的就是配置一下其中的mysql数据库。1. mysql数据库安装Mysql的安装我主要参考这

2016-07-02 18:47:38 1308

原创 IntelliJ IDEA 配置 Tomcat8

下面总结一下如何从无到有配置java web环境。之前的是在windows笔记本上配置的,这次是第一次在mac上配置。1. Tomcat配置去Tomcat官网,直接选择下载.zip文件,这里,我选择了下Tomcat8。1. 解压,复制整个文件到Library folder下,为了方便,直接将原文件改名Tomcat。2. cd /Library/Tomcat/bin3. 更改

2016-07-02 11:06:49 6429

原创 Integer to Roman 阿拉伯数字转罗马数字

思想就是先将一些典型的罗马数字进行存储。计算的时候,永远减去最大的满足要求的数字。

2016-07-01 19:23:45 388

原创 Roman to Integer 罗马数字转阿拉伯数字

关键是理解下罗马数字是怎么构成的。根据百科上的:罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法:1. 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;3. 小的数字(限于 I 、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ

2016-07-01 19:06:57 375

原创 Regular Expression Matching正则表达式匹配

.表示内容,匹配任意字符。*表示数字,匹配前面的0个或者任意多个字符。核心思路是:每次我们看pattern的时候,看2个。可以分为2种情况。1. a* 这种,第二个字符是*

2016-07-01 18:24:39 474

原创 Count and Say 一道处理String的题目

这道题目要求生成第n个序列。先要弄明白序列如如何生成的。序列的第一个值为1。第二个值为对前一个值进行count后的结果,"1" 有1个1, 记为11第三个值为对第二值进行count后的结果, "11"有2个1, 记为21第四个值对第三个值进行count, "21", count为1个2,1个1,记为1211

2016-07-01 16:35:35 313

原创 Ubuntu15.10 + Cuda7.5 配置Caffe

最近帮导师配置了新买的笔记本上的caffe。之前的环境都是在师兄们已经配置好的服务器上的,这次是从无到有,自己完完全全配置了一次。在这里写下总结。主要参考的资料有:Ubuntu 16.04 or 15.10 Installation Guide链接:https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installati

2016-07-01 13:55:27 1113

原创 Factorial Trailing Zeroes 阶乘结果中后缀为0的个数

先考虑0是怎么形成的?显然0是由2 * 5形成的。所以,统计阶乘中的2因子和5因子即可得出0的个数。因为5因子的个数一定是小于2因子的个数的,所以只需要统计5因子的个数。如果是20的阶乘 ,5, 10, 15, 20 那么5因子会出现4次,所以会有4个0。

2016-06-29 21:04:20 331

原创 Sudoku Solver 求解数独问题

现在是要我们求解数独的问题。典型的回溯问题。思路是这样的,对于某一个格,如果这个格子是空的,我们寻找所有可能填的值。对于每一个合法的值,我们往下递归,如果递归的范围结果是false, 就说明这个值是走不通的。换一个值。

2016-06-22 17:19:54 386

原创 Valid Sudoku 当前状态是否为合法的数独状态

注意这里只是判断数独状态是否为合法的,而不需要判断是否已经求解完毕。根据数独的定义,我们需要做3步:1.检查每一行有没有重复的数;2.检查每一个列有没有重复的数;3.检查每一个内部小格有没有重复的数。

2016-06-22 16:12:09 292

原创 Product of Array Except Self 计算array除了该元素以外的乘积

思考:这个题目要求时间复杂度为O ( n ) ,且最好不适用额外的空间。对于每个元素,我们计算一下它左边元素的乘积,与右边元素的乘积,将两者相乘,这是数组中除了这个元素以外的乘积了。

2016-06-22 15:42:21 363

原创 深度学习框架的介绍与比较(Caffe, TensorFlow, MXNet, Torch, Theano)

在这里,我将会介绍当前比较主流的5种深度学习框架,包括 Caffe, TensorFlow, MXNet, Torch, Theano,并对这些框架进行分析。首先对这些框架进行总览。

2016-06-22 14:57:08 30611 1

原创 Ugly Number 判断是否为“丑数”

看题目,丑数是正整数,且所有的因子只能是2,3,5。判断的方法就是不断地用2,3,5去除,如果最后剩下的1,那么说明它的所有的因子只有2,3,5的组合。如果不是剩下1,就说明还有其它的因子。

2016-06-22 11:26:00 322

原创 动态规划问题 (dynamic programming)的总结

相比于链表,字符串,或者暴力的直接回溯问题,动态规划问题是有难度的。它的难点在于不像前面的问题那么直接,需要我们自己去寻找规律。这个规律也就是问题如何拆分的规律。往往我们为了求解当前的状态,找到它跟前面的状态的联系,借助于前面的状态,快速地求解得到当前的状态。下面我将从简单的动态规划实例,动态规划与回溯的区别,典型的动态规划这几个方面来讲解。1. 简单的动态规划实例我们来看一下斐波

2016-06-21 19:16:08 386

原创 Palindrome Partitioning II 最小的括号分割

前面一道题目是要找到所有的回文子字符组合,现在是找到最小的分割数。很显然,应该用动态规划优化。开一个数组minValue, minValue[ i ] 存储以 index i 为起点的字符串的最小分割数。同时开一个二维数组isPal, 用来存储string中子字符串是否为回文字符。( isPal [ i ] [ j ] = isPal [ i ] [ j ] && s [ i ] == s [ j ] )

2016-06-21 18:53:43 171

原创 Palindrome Partitioning 分割成回文子字符串

这道题让我们找出所有合法的回文子字符串分割。可以基于回溯的思想来实现。对于当前的index, 我们找出以当前index开始的可能的回文字符,并把他们加到列表里面,然后对后面剩下的字符串再进行递归判断。比如当index = 0的时候,第一个回文字符串我们可以选择 "a"切割,也可以选择"aa"切割。

2016-06-21 18:07:19 258

原创 Distinct Subsequences 不同的子序列个数

我们假设有个二维数组cache[t.length() + 1][s.length() + 1], cache[ i ] [ j ] 表示 S[ 0 ... j ] 包含 T [ 0 .. i ] 的不同子序列的个数。当 i = 0时候,意味着T 为"", 对于任意的S,都能形成数量为1的。当 j = 0, 一个空字符不可能是任意字符的子串,所以值为0。当 i > 0 且 j > 0的时候,如果T[ i ] == S [ j ] ,那么此时的序列个数为它的左边的加上对角线的。cache[ i ] [

2016-06-21 13:24:51 337

原创 House Robber II 如何获得最大的钱系列2

以前是排成一行,现在是排着一个圈了。唯一的差别是以前第一个房子跟最后一个房子是不冲突的,现在成环后,第一个房子跟最后一个房子是冲突的了。所以,我们要么不选择第一个房子,正常计算第2...n个房子。要么我们选择第一个房子,忽略掉最后一个房子。这样我们就相当于把有环的化解成了没有环的普通问题了。最后取这2这种最大的,就是最终的结果。

2016-06-21 09:11:03 203

原创 Longest Valid Parentheses 最长的合法括号序列

做法是从左到右扫描数组,碰到 '(' ,当前的index入栈;碰到 ')' ,如果当前栈顶不为空且index对应的值为')'出栈,反之当前的index入栈。最后,如果栈为空,表示全都匹配,长度为string的长度。如果不为空,留在栈中的都是那些不能匹配的括号的index,相邻index间隔的长度记为中间合法的括号的长度。取其中的最大长度即为最大合法括号序列的长度。

2016-06-20 19:18:28 293

原创 Word Break II 单词分割系列2

跟前面的单词分割系列1 的区别在于,这次需要给出所有的组合结果。做这道题的思想跟前面的还是差不多,对于词典中的每一个词,如果跟当前的string的前面是相同的。那么看看剩下的string能不能被分割。并且在递归的过程中,存储word。同时设置isReach数组,用来标记下标以 begin开始的能不能被分割。如果isRead显示不能分割,那就没必要继续递归了。

2016-06-20 18:08:31 514

原创 Word Break 单词分割

我做这道题的思想是,对于词典中的每一个词,如果跟当前的string的前面是相同的。那么看看剩下的string能不能被分割。如果剩下的能被切割,直接返回true。如果对于所有匹配的词,剩下的string都不能被分割了。那么返回false。同时为了开辟一个数组canReach,用于标记以某个index开始的剩下的string是不是能被分割。这样能够避免大量的重复计算。也是很动态规划的思想。

2016-06-20 16:45:50 464

原创 Integer Break 找到乘积最大的拆分

假设现在要计算 n = 10,且我们已经知道前面的 n = 2 到 9 的最大拆分乘积。这些信息存在cache数组中。此时可以取: 1 + 9,此时的乘积是 1 * max ( 9 , cache[ 9 ] ) (可以选择9不拆分了,也可以选择9继续拆分成更小的)也可以取, 2 + 8, 此时的乘积是 2 * max ( 8, cache [ 8 ] )也可以取, 3 + 7, 此时的乘积是 3 * max ( 7, cache [ 7 ] )也可以取, 4 + 6,

2016-06-20 16:09:06 262

原创 Perfect Squares 平方数的组合

看到这个题目的时候,我觉得跟Coin Change 换零钱的方法非常的类似。Coin Change中换零钱的基础零钱面值是随机给定的。而这里零钱的面值是各种平方数,同时因为有1的存在。是一定能够找到这样的组合的!

2016-06-20 15:45:30 283

原创 Longest Increasing Subsequence 最长递增子序列

最长递增子序列是一道经典的题目。在例子中,总共有8个数。为了计算在index = 7 的时候,最长的递增序列,我们先考虑index < 7的时候的递增子序列的情况。我们开一个数组cache,cache[ i ] 存储 下标为 i 的时候,能达到的最大递增序列。假设我们已经知道index <= i 的时候的最大递增序列,cache[ 0 ] ... cache[ 1 ] ... cache[ i ] 。那么 i + 1的时候的最大递增序列是多少少?nums[ index ] < nums [

2016-06-20 15:09:20 280

原创 Range Sum Query 2D - Immutable 计算矩形中的元素和

我们先来考虑一下如何计算(2, 1, 4, 3)。我们设完整的矩形total为:以(0,0)为左上角点(4,3)为右下角点组成的矩形。左边的矩形left:以(0,0) (4,1)组成的矩形。上面的矩形top:以(0, 0) (2, 3) 组成的矩形。左上角的矩形leftTop: 以(0, 0)(2,1)组成的矩形。

2016-06-20 14:09:42 357

C++Primer 第四版课后习题解答(第1~18章完整答案)完整版

C++Primer 第四版课后习题解答(第1~18章完整答案)完整版 非扫描高清

2013-01-23

c++ mfc 校园导航 最短路径计算

在地图上有很多坐标点, 任意点击2点可以显示最短的连接路径, 进行导航 任意点击一点也显示当前坐标信息

2013-01-18

c++ 计算器 能实现带括号的小数计算

//介绍程序 void introduction(){ cout<<"这是一个计算机程序,支持:+,-,*,/,(,)的浮点数运算"<<endl; cout<<"请不要以+,-,*,/开头,请注意括号的匹配"<<endl; cout<<"请不要输入不必要的括号"<<endl; } 如输入1+3*1.2+(2+2.2)= 就会给计算结果8.8

2013-01-18

c++软件开发实践项目 基于mfc 结构为avl tree的单词表

有mfc的界面, 单词的存储结构为avltree 实现单词增删改查 搜索计时 背单词功能

2013-01-18

j2ee项目网上书店完整代码mysql+jsp+tomcat

j2ee期末项目网上书店, 下载了后放在合适目录下直接可以用 未注册用户可以 浏览图书 查询图书 注册用户可以在未注册用户的基础上可以 将商品加入购物车 下单,完成购买。 管理自己的订单。 拥有自己的个人主页。 后台管理员: 用户的管理 图书的管理 订单的管理

2013-01-18

java实践期末项目swing有界面图书管理程序

用java写的图书管理程序,带swing界面,有用户登录界面,图书的增,删,改,查,都能够实现。

2013-01-18

空空如也

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

TA关注的人

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