自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(349)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spring in Action(第五章 征服数据库)学习笔记

1.DAO data access object,DAO提供了一种数据读取和写入到数据库中的一种方式。2.接口是实现松散耦合的关键,最好将其应用到应用程序中的每一层,而不仅仅是持久化层。3.Hibernate异常为其本身所特有,JDBC的异常体系又太过简单,而Spring几乎为所有的读取和写入数据库的所有错误都提供了异常。4.Spring实现的异常处理都是继

2016-08-27 10:58:08 819

原创 Spring in Action(第四章 面向切面编程)学习笔记

1.在软件开发中,分布于应用中多处的功能被称为横切关注点。这些横切关注点从概念上是与应用的业务逻辑相分离的,将这些横切关注点与业务逻辑相分离正式面向切面编程(AOP)所解决的。依赖注入有助于应用对象之间的解耦,而AOP可以实现横切关注点与它们所影响的对象之间的解耦。2.继承和委托是最常见的实现通过功能的面向对象技术,但是如果在整个应用中使用相同的基类,继承往往导致一个脆弱的

2016-08-27 10:55:43 1146

原创 Spring in Action(第三章 最小化 Spring XML配置)学习笔记

1.减少XML的配置数量a.Spring提供了几种技巧,可以帮助我们减少XML的配置数量b.自动装配有助于减少甚至消除配置元素和元素,让Spring自动识别如何装配Bean的依赖关系c.自动检测比自动装配更进一步,让Spring能够识别哪些类需要被配置成Spring Bean,从而减少对元素的使用2.4种类型的自动装配a.byNameb.byType

2016-08-27 10:49:38 864

原创 Spring in Action(第一章 Spring之旅)

0.核心特性支持依赖注入(DI)和面向切面编程(AOP)1.耦合具有两面性a.紧密耦合的代码难以测试,难以复用,难以理解b.完全没有耦合的代码什么也做不了,不同的类必须以适当的方式进行交互2.依赖注入对象的依赖关系将由负责协调系统中各个对象的第三方组件在创建对象时设定,依赖关系将被自动注入到需要他们的对象中去。3.装配创建应用组件之间协作

2016-08-27 10:46:58 996

原创 Spring in Action(第二章 装配 Bean)学习笔记

1.Spring容器负责把相互协作的对象引用赋予各个对象,创建应用对象之间的协作关系的行为被称为装配,这也是依赖注入的本质。2.所谓bean,相当于定义了一个组件,这个组件是用于实现某个功能的。这里所定义的bean就是相当于给你一个简洁方便的方法来调度这个组件实现你要完成的功能。它是java的class,符合两个条件,首先有无参构造函数,其次为成员编写了set get方法。

2016-08-27 10:43:52 962

原创 JAVA中如何用shuffle打乱列表并生成乱序序列

引言在研究用遗传算法等启发式算法解决旅行商问题(Traveling Salesman Problem,TSP)时,首先要解决的问题时如何生成一个初始解,即一个代表顾客位置的编码序列,如有5个顾客,如何生成1,2,3,4,5的乱序序列,一般情况下是这样生成的:方法一:/* * @para len represents the length of the solution array

2016-05-12 08:52:10 20475

原创 leetcode_Longest Substring Without Repeating Characters

首先先来说这道题,一年前也曾做着这道题,但现在再翻出来看的话,已经看不出当初的思路。决定重新解这道题时,首先思路是很清晰的,循环找出字符串中每一个不含重复字符的子串,更新不重复子串的最大长度。具体是怎么判断子串中是否有重复字符,选择用数组而不是hashmap来判断字符串中是否有重复的字符,经过找工作的历练,这一点已经很好地成为直觉了。具体到程序的逻辑,还不是很熟练,修改过几次才通过。 另外一个地方,去年面试的时候,有面试官问我flagArr[str.charAt(start)] = false;中字符是否

2016-04-05 09:46:34 496

原创 leetcode_Longest Increasing Subsequence

描述:Given an unsorted array of integers, find the length of longest increasing subsequence.For example,Given [10, 9, 2, 5, 3, 7, 101, 18],The longest increasing subsequence is [2, 3, 7, 101],

2015-11-27 08:53:30 785

原创 leetcode_Range Sum Query 2D - Immutable

描述:Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1) and lower right corner (row2, col2).The above rectangle (with t

2015-11-26 20:52:06 599

原创 leetcode_Peeking Iterator

描述:Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation -- it essentially peek() at the element that

2015-11-26 20:42:42 580

原创 leetcode_First Missing Positive

描述:Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses

2015-11-26 20:31:42 528

原创 leetcoce_Find the Duplicate Number

描述:Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate numbe

2015-11-26 20:25:49 695

原创 leetcode_First Bad Version

描述:You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based o

2015-11-26 19:52:20 576

原创 leetcocd_Bulls and Cows

描述:You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hin

2015-11-26 14:32:01 561

原创 leetcode_Range Sum Query - Immutable

描述:Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example:Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1sumRange(2, 5) -> -1s

2015-11-26 14:12:56 583

原创 leetcode_Word Pattern

描述:Given a pattern and a string str, find if str follows the same pattern.Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

2015-11-26 14:01:40 581

原创 leetcode_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 b

2015-11-26 13:42:49 486

原创 matlab画甘特图(用任意多颜色表示任意多工件)

最近要发柔性车间作业调度问题(flexible job shop scheduling problem)方面的论文,需要将eclipse生成的数据表示成甘特图的形式,前期发车间作业调度问题(job shop scheduling problem)方面的论文,用过经典测试用例mt06画过甘特图,那是一个6*6的作业,直接用'r'表示红色,用‘g’表示绿色。。。,但是这次用的测试用例规格为10*6的规...

2015-11-11 19:06:52 19936 8

原创 经典排序算法效率研究

今天看算法导论,用程序测试了下排序算法的时间效率,对各个排序算法的效率有了理性的认识。通过做实验,我感觉到算法的时间效率真是太重要了,当对一个2的18次方大小的无序数组进行排序的时候,用归并排序47ms,用快排用时16ms,用插入排序用时29035ms,可见O(n*n)时间复杂度跟O(nlogn)时间复杂度的算法差别还是挺大的,甚至可以这么说当数据量太大的时候,用O(n*n)时间复杂度的算法来排序就是无解的;而对于同样是O(nlogn)时间复杂度的快排和归并排序,其时间复杂度相差还是挺大的,差不多3倍左右,

2015-11-03 15:56:36 816

原创 遗传算法简介

遗传算法简介优化问题有三种类型的优化问题第一种问题仅用一个优化函数和一个全局最优解来解决问题。第二种又叫做多目标优化问题,它用几个优化函数来优化问题。第三种又叫做多模态问题,这种问题主要处理那种具有一个优化函数但是有几个全局或局部最优解的问题。遗传算法遗传算法是用在计算搜索和优化问题的可行解的全局搜索方法,遗传算法出现在20世纪60年代,它借鉴了自然界中如遗传、自然选择、交叉、变异的机制。

2015-11-02 16:06:12 1266

原创 leetcode_Majority Element

1.就本题来说,最容易想到的思路就是遍历元素的同时用一个map来存储该元素和该元素出现的次数,如果包含还元素则相应的count+1,如果不包含,则put(num,1),即可2.但HashMap中存储的key和value都是Integer,每次对value加1时要面临相应的拆箱和装箱操作,即创建了大量的对象,对堆内存是个不小的开始。其实可以将count变量设置成一个int[]数组形式,每次遍历时如果包含该元素,则map.get(key)[0]++;即可,第一次出现的话,int arr[]=new int[1

2015-09-24 13:09:21 673

原创 leetcode_Simplify Path

1.要实现的功能就是执行cd path的命令,最后让你输出pwd打印当前的路径。2.首先先将路径path中的各个部分分解开来,然后遍历字符串数组,如果遍历到的字符串非空,遇到非.或..直接将该字符串路径入栈,遇到.则继续遍历下一个字符串,遇到..,如果栈不空,则将弹出栈中的一个元素,直至遍历完所有的元素,然后将栈中的元素从栈底到栈顶的字符串组合成一个路径。

2015-09-24 12:53:06 693

原创 leetcode_Restore IP Addresses

一个合法的ip地址包括4个部分,每个部分都要是小于255的一个数字,就是动态地取该数字串的某一部分且后一部分所取的位置都是在前一部分的基础上取得,最后得到四部分串后再去判断各个部分是否符合条件即可。典型的动态规划问题,后一部分依赖于前一部分来完成。当然在具体的编码过程中考虑到取完前面部分后后面的部分所表示的长度是否合法也是很必要的,这样可以省去许多后续的判定和字符串向整数的转换。

2015-09-24 12:37:54 489

原创 leetcode_Move Zeroes

意思就是将非零的元素按原来的顺序排在数组的前面,讲0元素排列于数组的后面。大概思路就是用一个index标记最后一个非零元素的位置,遍历数组有一个非零元素则将index后移一位,直至遍历完所有元素,然后将从index开始到结束位置的所有元素置0

2015-09-24 12:28:44 575

原创 2016奇虎360校园招聘编程题目

1.给个一个正整数n首先要解决这一题要分大概6个步骤:1.首先求出前100个素数2.将n分解为素数相乘的形式3.将分解后的多项式转换为字符串5.将0~9,*所对应的符号用数组存储起来6.分5行输出字符串中每个字符对应的数字符号代码如下:package com.mnmlist.test2;/* * 先求前一百个素数 * 将整数n分解为从小到大素数相乘的形

2015-09-16 08:39:34 1041

原创 leetcode_Permutations II

就该题来说,它是Permutation的进化版本,即该排列可能具有相同的元素。就Permutation这道题来说,假如第一次做的话也不太好做,就是每次交换begin和后面的元素,然后在该位置的基础上在递归地调用排列方法并使得begin=begin+1,直至begin=nums.length-1为止,然后将元素存储起来,详细步骤见代码。而Permutation II涉及到涉及到重复元素,在Permutation的基础上进行修改的话,需要将将重复元素的这一段给过滤掉,具体的实现是用到

2015-09-09 18:25:08 924

原创 如何向GitHub提交更改的代码

1.下载安装Git for windows 就不多说了,由Git Shell进入项目所在的目录中2.首先,在该目录中创建一个新的responsitory,将会显示"Initialized empty git repository in ....git" (... is the path).3.现在你需要通过将文件添加进repository来告诉git,通过git add filenam

2015-08-25 16:27:19 8241

原创 阿里巴巴2015实习生笔试真题

1.有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)?A.A按行存,B按行存。B.A按行存,B按列存。C.A按列存,B按行存。D.A按列存,B按列存。答案

2015-08-22 10:03:36 1841

原创 面试题目-1

1.有关会话跟踪技术描述正确的是a.Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端b.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期c.在禁用Cookie时可以使用URL重写技术跟踪会话2.下面代码的输出结果是什么?public class B{ public s

2015-08-21 15:23:11 3218

原创 Java中Comparator接口和Comparable接口的使用

一般情况下在实现对对象元素的数组或集合进行排序的时候会用到Comparator和Comparable接口,通过在元素所在的类中实现这两个接口中的一个,然后对数组或集合调用Arrays.sort或者Collentions.sort方法即可实现对数组或集合的排序。就sort方法里面的参数来说,实现了不同的接口则传递的参数也不尽相同。对于实现了Comparator接口的类来说,sort方法需要接受的参数不

2015-08-19 10:23:51 1822

原创 对象的比较及hashCode、equals方法的使用

如何进行对象的值的比较呢?如String类型的变量,是靠调用equals方法来比较的,而其它的类似数组或普通的对象直接调用equals方法一般是不可以的,这是因为String类型的变量通过调用equals方法来比较变量是因为String类覆盖了Object的HashCode方法和equals方法。正如String调用equals方法可以比较String对象变量的值是否相等,一般的对象也可以通过覆盖Object类的方法来达到同样的目的的。如下面代码 所示:

2015-08-18 09:47:06 1690

原创 Java中枚举类型的使用

虽然Java中有枚举类型这种数据类型,但是很少用,其实当用到星期、月份、四季等数据集的时候,无疑,枚举类型不仅很方便地解决了整数和字符串的映射问题,而且极大地提高了程序的可读性。下面就用简单的程序代码来说明这种问题:1.枚举类型自动赋值,默认情况下枚举变量从前到后分别被赋值为0、1、2、3、4、5....然后用循环的方式将枚举变量的名称和其对应的下标打印出来。

2015-08-18 09:35:29 1576

原创 腾讯面试题目之一

描述:假如给定一个150个整数大小的整数数组nums[],整数的范围1~100,请问用最快的速度如何对该数组进行排序?思路:基数排序?假设我不用基数排序呢。。。那我用快排、归并排序和堆排序,时间复杂度都是O(nlogn),哪个方法更快些呢?归并排序。有什么依据么?我猜的orz。。。回去跟同学探讨了一下,其实就是考查用空间换时间罢了。一个很经典的例子,相似的例子比如对一个堆身高数

2015-08-13 09:54:58 1191

原创 leetcode_Palindrome Linked List

思路:1.如何判断一个链表是否是回文的?很简单将链表中的元素遍历出来并放进ArrayList中,然后可以像数组一样来判断该元素是否为回文的,时间复杂度O(n),空间复杂度O(n),可如何用O(n)的时间复杂度和O(1)的空间复杂度来解决呢?2.是不是可以考虑 将链表反转?可反转后还是链表啊,要是将链表分为前后两个部分呢,分为两个部分还是无法判断该链表是否为回文链表啊,那要是再将其中一个链表反转一下呢,It's done!好多时候,多想一步容易,再多想一步就困难了。

2015-08-13 09:34:02 837

原创 leetcode_Jump Game II

思路:1.Jump Game思路:和求Max Subarray类似,维护一个当前元素可以跳至的最大值,每循环一次更新reach=Math.max(nums[i]+1,reach),当i>reach或i>=nums.length的时候循环终止,最后看循环是否到达了最后,到达最后则返回true,否则,返回false.2.和Jump Game不同的是,Jump Game II 让求的是跳过所有的元素至少需要几步,这需要维护一个局部变量edge为上一个reach,当i<=reach时,每次仍然通过Math.ma

2015-08-13 09:24:08 933

原创 leetcode_Jump Game

思路:和求Max Subarray类似,维护一个当前元素可以跳至的最大值,每循环一次更新reach=Math.max(nums[i]+1,reach),当i>reach或i>=nums.length的时候循环终止,最后看循环是否到达了最后,到达最后则返回true,否则,返回false.

2015-08-13 09:12:13 802

原创 leetcode_Decode Ways

思路:直接从后面开始算,如果str.substring(i,i+2)代表的数值小于26,那么,memo[i]=memo[i+1]+memo[i+2];否则,memo[i]=memo[i+1],虽然看起来很简单,却是很难想,一般都是从前面开始,然后比较字符的值再做判断,这样的话控制逻辑会非常复杂。

2015-08-13 09:02:51 900

原创 leetcode_Maximum Product Subarray

思路:1.一种思路是将数组分为被数字0分割的子数组,然后统计负数出现的次数,如果 是偶数,直接取子数组的乘积,如果是奇数,取去掉前面第一个奇数出现之前的 部分或去掉最后一个奇数及其后面数组部分后剩余部分的乘积即可,然后取maxProduct为字数组乘积最大的一段。程序的控制流程很麻烦。2.每次取部分数组乘积的最大值或最小值,然后跟num[i]做乘法运算,再取最大值或最小值即可,取最大值理所当然,取最小值是因为最小值的绝对值 可能大于最大值,碰到负数就变最大值了。

2015-08-13 08:47:15 754

原创 leetcode_Sort List

1.链表的排序一般每遇到过,让用O(nlogn)解决该问题就更不知如何下手了2.通过参考网上的思路才知道用归并排序,采用递归的方法解决该问题还是可以的,就是理解起来有点费劲3.重要步骤:递归,归并,查找数组有效范围内的中间节点,有序数组合并

2015-08-12 10:51:34 790

原创 leetcode_Integer to Roman

1.由于罗马数字是字符的形式堆叠而成的,所以不妨将数字的每一位转换成字符并结合相应的量级合成罗马字符串2.相应的,对于每个字符数字在不考虑量级的情况下大概分三种情况可以解决阿拉伯数字到罗马数字的转换,分(number>=1&&number<=3)、(number>=4&&number<=8)、(number==9)来考虑,具体的实现见代码。

2015-08-12 10:27:14 956

java100例,很好的资料,找了好久,终于找到了

巨好,java100例,很好的资料

2010-12-05

深入理解计算机系统笔记

深入理解计算机系统读书笔记 深入理解计算机系统

2014-04-07

深入理解计算机系统 英文 第二版

深入理解计算机系统 英文 第二版

2014-04-07

空空如也

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

TA关注的人

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