- 博客(119)
- 收藏
- 关注
原创 Mybatis中支持缓存的query与不支持缓存的query
其实,mapper文件中useCache参数会用来构建MappedStatement对象。即ms.isUseCache()被用来判断是否走缓存逻辑。3.通过业务逻辑判断。
2024-07-01 16:15:14
313
原创 DBeaver SQL脚本执行配置
对生产环境数据迁移到测试环境时,单条执行可能时间过长、或者内存装不下。最快的方法是执行SQL脚本。本地数据库客户端:DBeaver。
2024-01-16 16:01:21
1216
原创 leetcode-140. 单词拆分 II (字典树/dp + 回溯法) + 字节测开字典树算法题
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = "catsanddog"wordDict = ["cat", "cats", "and", "sand", "dog"]输出:["cats and dog","cat sand dog"]示例 2:输入:s =...
2021-05-22 22:08:33
514
3
原创 剑指 Offer 59 - II. 队列的最大值
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value需要返回 -1示例 1:输入:["MaxQueue","push_back","push_back","max_value","pop_front","max_value"][[],[1],[2],[],[],[]]输出:[null,null,null,2,1,2]...
2021-03-11 16:34:35
142
原创 解决ubuntu环境下OpenNRE项目搭建中遇到的torch和transformers的问题
github项目OpenNRE通过git clone指令克隆到本地之后,需要对项目所需的包进行配置。项目中包含一个requirements.txt文件,通过指令pip install -r requirements.txt可以批量安装。要知道ubuntu自带的有python的解释器,但是对于pip指令而言,针对的是python2.x进行安装,这样第一行就会直接报错,因为torch==1.6.0版本会提示找不到合适资源。后来下载去到pytorch官网,查找Linux系统下可使用pip安装的torc
2020-11-04 22:09:18
1705
1
原创 windows下GitHub中.sh文件下载的问题解决方案
一些github中的项目为了加快开发者的下载速度,一般不会将项目的数据集与项目绑定到一起,一般都是以.sh后缀的文件格式与项目绑定。比如实体关系抽取项目中的数据集下载问题:对于.sh格式的文件安装需要sh命令,而sh指令是git系统下的操作指令。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。A.首先安装git系统,并配置一下用户环境变量。之后到benchmark文件下运行sh downl
2020-11-02 22:31:50
4821
1
原创 leetcode-最大子序和(dp or 线段树)
最大子序和难度简单2541给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解题思路:动态规划的思想,这是一道最简单的求连续子序列和的问题,只需要在记忆化数组的基础上添加一个变量时刻更新最大的和即可,因为只...
2020-10-19 20:21:58
145
原创 剑指offer--二叉树的下一结点(中序遍历思想,枚举各种情况)
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题思路:一种最朴素的方法:由于TreeLinkNode中包含有next指针,指向当前结点的父节点,这样可以找到整棵二叉树的根节点。题目要求中序遍历的下一个节点,可以预处理获取整棵树的中序遍历序列,保存在一个容器中,之后for循环遍历容器中的节点,当访问到当前节点与给定节点相同时,直接return容器中的下一个节点即可。这种方法没有写。以上是机试的思路
2020-10-02 15:22:50
129
原创 剑指offer--序列化与反序列化二叉树(先序递归,建树)
题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。例如,我们可以把一个只有根节点为1的二叉树序列化为"1,..
2020-09-30 22:25:51
115
原创 剑指offer--数据流中的中位数(大小根堆优先队列)
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。解题思路:最朴素的想法是,通过设定一个ArrayList链表,在插入函数中,每次通过add函数添加num到当前状态下的链表中。在GetMedian函数中,由于数据是随着数据流不断更新的,所以需要先使用.
2020-09-30 11:30:27
130
原创 剑指offer--剪绳子(记忆化递归 || dp || 数学)
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述:输出答案。示例1输入8输出18解题思路:给出几种方法,看到
2020-09-29 16:36:43
128
原创 剑指offer--链表中环的入口结点
题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路:两种方法,HashSet结构和双指针做法。HashSet方法:直接遍历链表,每次指向当前节点的下一个节点。如果当前节点不在set集合中,执行进集合操作。如果当前节点在set集合中,那么直接返回当前节点即为所求的环的入口节点。控制边界,如果链表为空,直接返回为null。代码如下:/* public class ListNode { int val; ListNode nex.
2020-09-29 11:21:27
123
原创 剑指offer--树的子结构(节点遍历)
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路:递归解决问题的过程:1.递归解决什么问题,判断是否B树是A树的子结构。相同,返回true;不同返回false。2.递归的终止条件,如果当前递归中,树B为空,返回true,与树A无关;如果树B不为空,但是树A为空,那么直接返回false,回溯证明当前递归的过程并不是我们所需要的。3.下一次递归的参数:如果A的根节点和B的根节点不相等,直接返回false。证明当前路径不匹配,直接回
2020-09-26 19:53:31
162
原创 剑指offer--平衡二叉树(二叉树深度+递归)
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树解题思路:根据求解二叉树深度的问题。可以将该问题从两种解题方法考虑,分别是自顶向下和自底向上。首先,自顶向下的方法中,通过引入一个HashMap的结构,记录节点与节点深度。不过java中的hashmap使用get函数之前需要使用containsKey函数判断是否包含当前节点。先通过dfs函数,递归求解二叉树中全部节点及其对应的深度,并使用hashmap数据结构保存下.
2020-09-25 15:05:04
102
原创 剑指offer--不用加减乘除做加法(位运算)
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解题思路:不可以使用加减运算符,那么就要想到使用位运算解决加法操作。分为两个步骤,一个是无进位相加结果,另一个是进位相加的二进制结果,类似于整数相加结果的余数,但是应该向左位移一位,因为进位只对前面的位数有影响。对于负数而言,引入了反码和补码的概念,减去一个数,相当于加上一个数的负数,因为计算机中只提供了加法的运算,代码如下:public class Solution { public int
2020-09-24 16:35:43
87
原创 剑指offer--旋转数组的最小数字(二分)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组[3,4,5,1,2]为[1,2,3,4,5]的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路:这道题由于设定了旋转数组,直接遍历就没什么意思了。使用的二分查找的方法,但是array[mid]的比较数值target设定为多少是需要考究的,一般不给出target值的二分直接将边界值设定为targ.
2020-09-23 22:43:10
82
原创 剑指offer--二叉搜索树与二叉链表(线索化二叉树思想,链表)
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思想:最朴素的解题思想是:对于二叉搜索树而言,中序遍历的结果就是一个递增的序列。为了将搜索树转换成一个排序的双向链表,又不可以创建新的节点,可以使用ArrayList列表加入到搜索树的中序遍历中去,当访问到当前节点时,将节点添加到ArrayList链表中,最后一层for循环统一对链表中节点间的左右指针进行更新。使用的是其他方法,这段代码直接粘上了,仅供参考:p.
2020-09-23 16:02:27
137
原创 剑指offer--二进制中1的个数(位运算)
题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。解题思路:四种方法。第一种对于负数是不可行的,其他三种可行。第一种方法是模拟二进制的移位,每次循环将整数对2取余,如果不为0,代表最后一位为1,则ans++,否则最后一位为0,直接将整数除以2,类似于二进制移位操作。但是这种方法有一个弊端,就是对于int类型所能取到的最小负数,即-Integer.MAX_VALUE,没办法正确处理。解释如下,因为int型的最小负数,换成二进制是10000....(31个0),.
2020-09-23 09:57:32
97
原创 leetcode--最大整数子集(dp+数论+动态数组)
给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。如果有多个目标子集,返回其中任何一个均可。示例 1:输入: [1,2,3]输出: [1,2] (当然, [1,3] 也正确)示例 2:输入: [1,2,4,8]输出: [1,2,4,8]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-divisible-.
2020-09-21 19:11:36
428
原创 leetcode--不同路径(动态规划)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 .
2020-09-20 19:25:37
225
原创 leetcode--从二叉搜索树到更大和树
给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node的新值等于原树中大于或等于node.val的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,null,null,null,3...
2020-09-20 18:46:08
150
原创 leetcode--三数之和(排序+双游标)
给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]解题思路:因为题目要求结果列表中的列表序列是不可以重复的(这种题不用想搜索,还需要控制上下元素是否相同,传参极其麻烦...
2020-09-19 21:47:59
88
原创 StringBuffer用法及与String区别
String和StringBuffer 的主要区别:String是不可变的对象,每次String类型变量改变时,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串不要使用String类型,因为每次生成对象都会对系统性能产生影响,当内存中不被引用的对象多了以后,性能就会降低。使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。所以多数情况下推荐使用 StringBuffer ,特
2020-09-18 19:11:23
391
原创 leetcode- 电话号码的字母组合(dfs)
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].解题思路:设定按键与所包含字符的映射集合,设定返回的List集合,利用深度优先搜索的思想,按照给出的按键顺序逐层搜索即可。在每一层中,使用for循环,以当前字符取-继续下一层dfs-当前字符不取的过程搜索,直到搜索..
2020-09-18 18:47:48
210
原创 Java数组之选择排序和冒泡排序
根据算法的编程思想,选择排序每次循环都是将第一个元素与其他元素比较,每次循环之后使得第一个值是最小的,内层循环是需要使用外层循环的循环参数的,但是外层循环要防止数组越界(len-1)。冒泡排序按照一次循环,每相邻两个元素相互比较,大的后移或前移。一次循环之后,将最大的元素浮动到数组两端,这里浮动到尾端。每次比较的两个元素是一直更新的,所以外层循环的循环参数是用不到的,每次确定最大的一个数值,故循环len-1次即可。对于内层循环而言,每次从0开始,一次比较当前元素与后一个元素大小确定是否需要交换。注意
2020-09-11 22:44:47
153
原创 Java数组在内存中的划分
数组同一种类型数据的集合,其实就是一个容器。第一种格式(需要一个容器,不明确容器具体数据):元素类型[] 数组名 = new 元素类型[元素个数或数组长度]int[] arr = new int [3];第二种格式(需要容器,存储已知的具体数据):int[] arr = new int[] {89,34,19};int[] arr = {89,34,19} ;内存划分:1.寄存器2.本地方法区3.方法区4.栈内存 存储的都...
2020-09-11 22:28:31
107
原创 NLP分词之字定义字典分词以及动态调整字典词频
本篇针对于jieba分词和hanlp两个分词工具的自定义字典剖析。自定义字典分词对于一个文档,我们通过上面两个工具进行分词操作。但是如果碰到一些特殊的文本,并且需要对一些专业术语以及分词工具中不存在的词进行切分就需要人工标识一些词放到自定义字典中,以便于使得分词结果中目标单词以一个整体的形式存放。jieba分词:定义一个'.txt'形式的文本文档,将目标单词写入该字典中。通过如下语句加载:jieba.load_userdict("dict.txt")然后通过cut函数正常切分即可。
2020-05-09 23:28:09
687
原创 安装pyhanlp过程中遇到的”_Jpype“模块Not found问题解决办法
这个问题简直是莫名奇妙。前段时间由于学习网络爬虫遇到了各种python包安装,以及各种插件调试问题。一遍过还好说,尤其这种偏工程的学科,环境搭建不好,就没法开展进度。对于NLP领域的一个分词工具——Hanlp的安装遇到了同样问题。首先直接pip install pyhanlp失败,由于hanlp核心是用java实现的,这里我电脑本来是有JDK环境的,所以先跳过这部分。根据《自然...
2020-03-22 22:29:24
1920
原创 scrapy+selenium之中国裁判文书网文书爬取
浅尝python网络爬虫,略有心得。有不足之处,请多指正url =https://wenshu.court.gov.cn/爬取内容:裁判文书爬取框架:scrapy框架 + selenium模拟浏览器访问开始想暴力分析网页结构获取数据,哈哈哈哈哈,天真了。看来自己什么水平还真不知道。之后锁定pyspider框架,搞了四五天。该框架对于页面超链接的连续访问问题,可以手动点击单...
2020-02-19 03:19:25
5211
13
原创 讨论scrapy-splash渲染不成功问题?
url = https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=75461a02d9714cec9322ab4500147439由于scrapy爬虫框架可以对页面进行动态js渲染,其中有两种工具:splash & selenium。selenium通过webdriver模拟对页面的...
2020-02-15 18:08:22
3133
5
原创 利用反射机制对XML文件进行解析
package com.example1;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.
2017-09-09 22:42:10
615
原创 Java中类的反射机制
反射:1.获取对应的class对象方式1:★Class clazz=Class.forName("全限定名");方式2:Class clazz=类名.class;方式3:Class clazz==对象.getClass();2.通过class对象创建一个实例对象(相当于 new 类())Object clazz.newInstance();3.通过clas
2017-09-09 22:35:46
269
原创 Dom4j和XPath的XML解析技术
dom4j技术进行查询操作.使用步骤:1.导入jar包2.创建一个核心对象 SAXReadernew SAXReader();3.将xml文档加载到内存中形成一棵树Document doc=reader.read(文件)4.获取根节点Element root=doc.getRootElement();5.通过根节点就可以获取其他节点(文本节点,属性节点,元素节点
2017-09-09 22:34:00
376
原创 修饰者模式下的简易连接池操作
增前方法1.继承2.装饰者模式(静态代理)3.动态代理装饰者模式:使用步骤:1.装饰者和被装饰者实现同一个接口或者继承同一个类2.装饰者中要有被装饰者的引用3.对需要增强的方法进行加强4.对不需要加强的方法调用原来方法/** * TestDs.java * 测试被装饰者模式修饰的连接池功能 * */package com.datasour
2017-08-31 17:00:14
222
原创 简易连接池创建及使用
连接池概述:管理数据库的连接,作用:提高项目的性能.就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法获取,不用的时候归还连接即可.所有的连接池必须实现一个接口 javax.sql.DataSource接口获取连接方法:Connection getConnection() 归还连接的方法就是以前的释放资源的方法.调用connection.close()
2017-08-31 16:49:34
404
原创 JDBC连接池 —— c3p0
hibernate和spring使用有自动回收空闲连接的功能.使用步骤:1.导入jar包(c3p0-0.9.1.2.jar)2.使用apia.硬编码(不推荐)new ComboPooledDataSource()b.配置文件配置文件的名称:c3p0.properties 或者 c3p0-config.xml配置文件的路径:src下编码只需要一句话ne
2017-08-31 16:43:20
298
原创 JDBC连接池 —— DBCP
DBCP:(理解)apache组织使用步骤:1.导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar)2.使用apia.硬编码//创建连接池BasicDataSource ds = new BasicDataSource();//配置信息ds.setDriverClassName("com.mysql.jdbc
2017-08-31 16:39:28
239
原创 ResultSetHandler——DBUtils中封装结果集接口的使用
ArrayHandler, ArrayListHandler, BeanHandler, BeanListHandler, ColumnListHandler, KeyedHandler, MapHandler, MapListHandler, ScalarHandler (了解)ArrayHandler, 将查询结果的第一条记录封装成数组,返回(了解)ArrayListHandler
2017-08-31 16:17:32
686
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人