- 博客(44)
- 资源 (1)
- 收藏
- 关注
转载 Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
原文链接:点击打开链接一.简介 Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一篇我们介绍了对MongoDB的新增和删除, 今天我们要介绍Java代码实现对MongoDB实现查询操作。 我们回顾一下,我们在之前介绍了Mon
2018-01-10 18:34:41
649
转载 KMP算法
关于算法原理,贴上博客看到的讲解非常易懂的版本:(链接:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html)1.首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以
2017-09-26 21:18:21
492
转载 算法——cracking the coding interview150解答
1.7---将矩阵元素为0的行列清零0(CC150) public static int[][] clearZero(int[][] matrix, int n){ int high = matrix.length; int wide = matrix.length; if(high == 0) return matrix;
2017-07-10 18:43:58
585
转载 使用 Spring 2.5 基于注解驱动的 Spring MVC
概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一步的
2017-05-10 20:52:32
417
转载 Servlet和Tomcat相关知识
Servlet学习总结Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类别,一般情况下,人们将Servlet理解为后者。Servlet运行于支持J
2017-05-07 15:30:18
580
转载 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.youkuaiyun.com/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中
2017-04-26 11:17:15
283
转载 java 锁与可重入锁
简单锁在讲述简单锁的实现之前,我们先来看一个锁的应用例子:public class Counter{ private Lock lock = new Lock(); private int count = 0; public int inc(){ lock.lock(); this.count++; lock.un
2017-04-16 20:40:37
617
转载 整数划分(动态规划)
经典问题。将正整数n表示成一系列正整数之和,n=n1+n2+..+nk1. 将n划分成不大于m的划分法(多个整数可以相同)dp[n][m]= dp[n][m-1]+ dp[n-m][m] dp[n][m]表示:整数 n 的划分中,每个数不大于 m 的划分数。dp[n][m-1]:表示划分中每个数都小于 m,相当于每个数不大于 m- 1dp[n-m][m
2017-04-12 13:39:44
3144
转载 中缀后缀表达式转换与计算
题目:问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。中缀表达式转后缀表达式的方法:1.遇到
2017-04-02 19:17:00
559
原创 微软2017年预科生计划在线编程笔试题Legendary Items
题目1 : Legendary Items时间限制:10000ms单点时限:1000ms内存限制:256MB描述Little Hi is playing a video game. Each time he accomplishes a quest in the game, Little Hi has a chance to get a
2017-04-02 19:08:42
1408
原创 排序总结
排序 最差时间 平均时间 稳定度 空间 冒泡排序 o(n2) o(n2) 稳定 o(1) 选择排序 o(n2) o(n2) 稳定 o(1) 二叉树排序 o(n2) o(nlogn) 不一定 o(n) 插入排序 o(n2) o(n2) 稳定 o(1) 快速排序 o(n2) o(nlogn) 不
2017-03-24 11:26:01
412
原创 Dijkstra和Floyd算法
public class Dijkstra { /** * 典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径 * 该算法要求图中不存在负权边 * 把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示) * 第二组为其余未确定最短路径的顶点集合(用U表示) */ public static int MAXNUM = 6; static in
2017-03-24 11:17:09
450
原创 MySQL(慕课网笔记)
MySQL开源的关系型数据库管理系统第一章 安装MSI安装 在官网下载的网址 下载之后一路next安装。安装路径默认到了c:\Program Files\MySQL,这时MySQL Server 5.7\bin目录下没有data文件夹。 在环境变量的path中配置一下mysql的环境(例如我的C:\Program Files\MySQL\MySQL Server 5.7\bin;)。 接着需
2017-02-21 10:38:22
1414
转载 Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真
2017-02-21 10:31:40
575
转载 java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch
2017-02-21 10:23:45
306
转载 正则表达式
正则表达式原文地址1 概念正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于搜索、编辑或者是操作文本和数据。(本教程讲授 java.util.regex API 所支持的正则表达式语法) java.util.regex 包主要由三个类所组成:Pattern、Matcher 和 PatternSyntaxEx
2017-02-10 10:26:09
1130
原创 《深入理解Java虚拟机》读书笔记
记部分读书笔记,后续会添一、自动内存管理机制内存区域Java虚拟机在执行Java程序时会把它管理的内存划分为不同的数据区域。 Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的。一个处理器(对多核处理器是一个内核)都只会执行一条线程中的指令。(“线程私有”内存)生命周期与线程相同。运行时数据区: 所有线程共享的数据区 线程隔离的数据区 方法区(Method Are
2017-02-03 11:44:31
385
原创 leetcode最优解整理2(Linked list/ Stack/Queue/Array/HashTable/ Tree/bfs/union find)
linked list2. Add Two Numbers相加两个非空的linked lists,每个节点只有一位(需进位) 思路:循环中,进位分开和l1.val、l2.val相加(长度不一)。新链表至少两指针,其长度可能大于l1或l2(进位) public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListN
2017-01-31 09:42:41
1650
原创 leetcode最优解整理(dfs/String/Binary Search/Two pointers/Math/Dynamic programming)
从今天开始将自己做过的leetcode进行整理,争取做到bug-free~recursive1. Two Sum根据target求两数在数组中的index 思路:用HashMap(时间复杂度o(n))方法2:敏感关键字array和target,想到二分查找法(但需要一点一点挪low和high指针)。 排序后,target == numbers[low]+numb
2017-01-23 20:28:02
1984
转载 码字 层映射 预编码的概念总结
1.TB是什么概念,是怎么来的? 答:在36.321里面,multiplexingof MAC SDUs from one or different logical channel onto one TB to be delievered to the physical layer on transport channels 由此可见,TB是由n个MAC SDU组合而成的,具体组合方式参
2016-12-27 20:12:16
6546
转载 java输入输出流
java输入输出流一、什么是IOjava中I/O操作主要指使用java进行输入、输出操作。java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。 java.io是大多数面向数据流的输入/输出类的主要软件包。此外,java也对块传输提供支持,在核心库java.nio中采用的便是块io。 流IO简单易用,效率较低;块IO效率很高,但编程比较复杂。java I
2016-12-15 09:51:09
3432
原创 12月记
16年最后一个月已走完了二分之一。 腰疼依旧繁衍生息,萦绕不绝。最近没怎么努力,身体倒是劳累不已。晚上也总是精神百倍,很难入睡。 如今的心态已和去年大不同。此刻的我,一心向工作,以前那些大片大片的杂念被我渐渐挥剑斩掉。 虽然,还有大片大片的时间,都特么用来给老师做杂活。当然少不了一直悬在头顶的论文压力,和实验室的项目压力——就这样还是免不了被老师一月一次的“教育”。尤记得上个月在科研楼的洗手间
2016-12-15 09:04:52
559
原创 #1067 : 最近公共祖先·二
题目链接 及 思路参考输入每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第1行为一个整数N,意义如前文所述。每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串Father_i, Son_i,分别表示父亲的名字和儿子的名字。每组测试数据的第N+2行为一个整数M,表示小Hi总共询问的次数
2016-12-14 17:59:45
386
原创 #1062 : 最近公共祖先·一
题目链接地址输入每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第1行为一个整数N,意义如前文所述。每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串Father_i, Son_i,分别表示父亲的名字和儿子的名字。每组测试数据的第N+2行为一个整数M,表示小Hi总共询问的次数。每组测
2016-12-14 17:54:41
540
原创 Java Socket(慕课网笔记)
Java Socket(慕课网笔记)网络基础知识两台主机通过网络进行通信的必备条件: IP地址、协议、端口号 TCP/IP是目前世界上应用最为广泛的协议 是以TCP和IP为基础的不同层次上多个协议的集合 TCP:传输控制协议 IP:互联网协议 端口用于区分不同应用程序。端口号范围为0~65535,其中0-1023为系统所保留,自定义可以选其后的 IP地址和端口号组成了Sock
2016-12-01 14:25:57
753
原创 二叉树的操作-java
二叉树TreeNode定义:public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}中序遍历左子树——根——右子树的顺序public void inOrder(TreeNode r) { if (r != null) {
2016-11-30 20:48:22
540
原创 打劫房屋 II和打劫房屋 III
这两题都做错了T_T,所以参考了别人的。代码来源:地址 II题目: 在上次打劫完一条街道之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子围成了一个圈,这就意味着第一间房子和最后一间房子是挨着的。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一
2016-11-27 21:57:48
494
1
原创 lintcode打劫房屋
原题地址 题目: 假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。您在真实的面试中是否遇到过这个题? Yes 样例 给定
2016-11-27 00:01:50
457
原创 bestcoder-Fxx and string
原题地址import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = Integer.parseInt(in.nextLine()); w
2016-11-14 21:36:07
251
转载 Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成cla
2016-10-24 18:34:49
340
转载 Java ArrayList、Vector和LinkedList等的差别与用法
ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要涉及到数组元素移动等内存操纵,所以索引数据快插入数据慢,Vector因为应用了synchronized办法(线程安全)所以性能上比ArrayList要差,LinkedList应用双向链表实现存储,按序号索引数据须要进行向前或向后遍历,然则插入数据时只须
2016-10-20 09:46:05
292
原创 笔试题-最大连续序列和
给定n个数,求子序列的最大和。这个子序列可以有前缀和后缀(也可以为空),但是前缀和后缀的每个数都是原来数的负数,求这个最大和。 输入为两行,第一行为整数n(1~100),第二行为n个整数(32位int范围内)。输出最大连续序列和。 示例: 6 -3 5 -2 6 8 -3 输出: 23 思路:遍历所有可能的序列,对每个序列,先求最大前缀(若没有,则为0)maxPrefix,题例为3,再
2016-09-29 20:10:11
369
原创 java数据类型转换小总结
一、简单数据类型转换简单数据类型之间的转换又可以分为: **1.低级到高级的自动类型转换 2.高级到低级的强制类型转换 3.包装类过渡类型能够转换 ** 上图,由低级到高级为: (byte,short,char)–int–long–float–double 其中,byte型不能自动提升到char,char不能自动提升到short(强制转换不影响)。 在Java中,整数类型(b
2016-09-23 20:08:02
2289
1
原创 蚂蚱跳(笔试题)
一个蚂蚱位于0处,在一条直线上向正向或反向跳跃。第一次跳1个单位,每次跳跃的距离比前一次多1。计算让蚂蚱跳到x处,需要经过多少次跳跃。输入为一行,包含一个整数x。样例:260输出:330这道题自己没有想到高效的办法,导致笔试的时候卡壳了。。结束后在网上一搜,找到了这么个简单牛逼的解答。思路:令S = 1+2+3+......+n , 当且仅当S>
2016-09-20 15:25:35
2875
原创 滴滴笔试题
小青蛙用仅剩的体力值P走地下迷宫。迷宫为一个n*m的grid,每个位置为0或1,1代表可以走,0代表无法走。初始节点为(0,0),目的节点为(0,m - 1)(保证初始和目的都为1)。青蛙往上走时消耗体力值3,水平走消耗1,往下走不消耗体力值。计算青蛙能否用体力值P跳出迷宫。若不能跳出,输出“can not escape”,否则输出路径。输入顺序为n,m,p,接着n行m列是gird里的数。
2016-09-18 20:08:47
893
原创 记录搭建hexo遇到的问题
1.要实现评论功能,下载了pacman。配置没问题,结果hexo server时显示:ERROR Theme config load failed.后来才知道是在修改pacman下的_config.yml时,不小心去掉了shortname后的一个空格(yml语法不允许)。加上就成功了,如下图2.配置评论的_config.yml以后,多说上没有任何问题。但是网页上并没有显示评论区
2016-09-18 11:54:51
3768
1
转载 Node.js 究竟是什么?
很实用的扫盲贴。原文转自http://www.ibm.com/developerworks/cn/opensource/os-nodejs/Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。简介如果您听说过 Node,或
2016-09-17 11:15:47
521
转载 LaTeX新人教程,30分钟从完全陌生到基本入门
1.LaTeX软件的安装和使用 方法A(自助):在MikTeX的官网下载免费的MikTeX编译包并安装。下载WinEdt(收费)或TexMaker(免费)等编辑界面软件并安装。 方法B(打包):在ctex.org下载ctex套装(含MikTeX及WinEdt) 哈哈这一部分当然不包含在标题的30分钟里。 2.第一个文档 打开WinEdt,建立一个新文档,将以下内容复制进
2016-09-16 21:01:28
428
转载 面向对象的三个基本特征 和 五种设计原则
一、三个基本特征面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使
2016-09-16 17:36:46
397
原创 动态规划——最长递增子序列和最长公共子序列
(1)最长递增子序列一个序列有n个数:a[1],a[2],…,a[n],求出最长递增子序列的长度。比如说对于测试数据5,3,4,8,6,7来说:第一个数字5,d[0] = 1 第一个数字3,前面没有比他还小的了,d[1] = 1 第三个数字4,最长的递增子序列就是3,4,d[2] = 2 第四个数组8,d[3] = 3 第五个数字6,d[4] = 3 第六个数字7,d[5] =
2016-09-14 16:18:52
5809
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅