自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 maven用久后必须了解的phase、goal参数及生命周期概念

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> .

2020-08-11 23:15:40 22

原创 maven插件 dockefile完整代码配置流程实例

dockerfile 插件 (上面的是docker插件,推荐用这个)前提准备:maven的机器上已经配置好了DOCKER_HOST, 不管是windows还是linuxFROM java:8ARG JAR_FILEADD target/${JAR_FILE} app.jarENTRYPOINT ["java", "-jar", "/app.jar"]setting.xml <server> <id>registry.cn-hangzhou.aliyun

2020-08-11 22:43:49 22

原创 springboot+jpa快速搭建web项目

1. 设计表idea左面的实体类必须连接一下。[需要idea连接上数据库]2. 实体类package com.biturd.logintest.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;/** * @Program: login-test * @Descripti

2020-08-11 14:51:16 20

原创 js、Java前端DES加密 后端解密 前后端一致

JS下载库文件,注意一下目录设置。https://github.com/sytelus/CryptoJS<script> function encrypted() { pre_passwd = document.getElementById("password").value var keyHex = CryptoJS.enc.Utf8.parse('12345678'); var later_passwd = CryptoJS.

2020-08-11 14:38:06 36

原创 Python刷leetcode--107. 二叉树的层次遍历 II

思路:层次遍历一层之前,先定义一个中间队列,并且记录一下,需要遍历多少个节点。可以反转一下list,或者直接用一个栈。先进去的在里面class Solution: def levelOrderBottom(self, root: TreeNode) -> List[List[int]]: if not root: return [] ans = [] que = collections.deque()

2020-08-07 10:16:00 29

原创 Java 手写线程池

源码:https://github.com/Bit-urd/knowledge-base/tree/master/java-se/src/com/biturd/knowledgebase/thread/pool思路类比数据库连接池。数据库连接池复用的是Connection,池化技术通用的:最小个数、最大个数、活跃时间、线程池容器[核心]:一般为队列。[通用的就不写了,写点特有的]线程池复用的是线程,目的是减少向操作系统申请线程避免上下文切换。正常情况下线程执行完就结束了,就死亡了。无法复用。要.

2020-08-05 11:44:38 29

原创 Python刷leetcode--72.编辑距离 [DP必看]

编辑距离算法被数据科学家广泛应用,是用作机器翻译和语音识别评价标准的基本算法。最直观的方法是暴力检查所有可能的编辑方法,取最短的一个。所有可能的编辑方法达到指数级,但我们不需要进行这么多计算,因为我们只需要找到距离最短的序列而不是所有可能的序列。class Solution: def minDistance(self, word1: str, word2: str) -> int: # leetcode submit region end(Prohibit modifica

2020-08-03 09:58:25 49

原创 Python刷leetcode--5.最长回文子串

重点:if tmp > maxLen and s[i] == s[i-tmp+1]:判断最后一位和第一位是不是相等,相等才是回文串。class Solution: def longestPalindrome(self, s: str) -> str:# leetcode submit region end(Prohibit modification and deletion) # 状态数组 dp[n+1][n+1] n = len(s)

2020-08-03 08:32:58 28

原创 Python刷leetcode--14.最长公共前缀

我的代码:思路横向扫描所有的子串,不断的扩展ans,如果某个字符串越界就直接返回,如果不相等也返回。class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: # leetcode submit region end(Prohibit modification and deletion) length = len(i) ans

2020-08-02 23:59:30 16

原创 Springboot+Docker+Maven插件

1. 待部署的服务器(生产环境)上配置好远程访问2. maven构建所在的服务器上(或者jenkins容器里),配置好一个host3. pom.xml Maven插件相关配置 <properties> <docker.image.prefix>registry.cn-beijing.aliyuncs.com</docker.image.prefix> <docker.image.midfix>wheatdr-cl

2020-07-31 11:26:09 44

原创 Python刷leetcode--剑指 Offer 27. 二叉树的镜像(附带树的几种遍历方式)

思路:递归的交换左右子树推出条件:左右子树都为None难点:特殊情况如何处理class Solution: def mirrorTree(self, root: TreeNode) -> TreeNode: if not root: return None return self.recur(root) def recur(self, root: TreeNode) -> TreeNode: #.

2020-07-28 18:36:20 21

原创 Python刷leetcode--剑指 Offer 14- I、II.剪绳子

感觉有点类似于背包问题,,3是最大的收益先列举一下大概看一下怎么最大 发现 6分为 3 * 3 2 * 2 * 2 3大于2 12分为 3 * 3 * 3 * 3 4 * 4 * 4 3大于4 3以前是大的结果最优 3以后是小的结果最优先按照3分然后 剩下的补2 13 3*3*3*2*2=27*4=108 3*3*3*3*1=81, 然后如果最后剩下1就证明前一轮是个4 分为了 3和1,而2*2收益最大class Solution: def cuttingRope(self

2020-07-17 15:42:53 40

原创 Python刷leetcode--剑指 Offer 12.矩阵中的路径

python for遍历怎么带下标。enumerate 内置函数递归的大体思路。找到一个然后,深入。不能进入格子两次 这种条件可以通过在当前层改变当前值的方式来避免重入递归的出口。如果四个有任何一个满足就深入,深入 [深入的结果是一个bool值],如果长度相等返回true,因为上一层递归 l+1 了,,这个有点难理解。l表示走过的长度生成的字符串是不是已经相等了回溯法,本层做完操作了 要还原,不能影响其他层from typing import Listclass Solution: .

2020-07-10 00:54:41 29

原创 传统必会算法--归并排序

/** * @Program: EasyLeetcode * @Description: MergeSort * @Author: Biturd * @Date: 2020-07-07 22:46 */public class MergeSort { public static void main(String[] args) { int[] input = new int[]{ 3, 5, 4, 1, 2 };

2020-07-08 14:52:18 26

原创 Python刷leetcode--1.两数之和

思路:用hash表存储所有值,存储。然后遍历数组,用target-当前位置的值并在hash表中判断是不是存在。[3,3],6 : 注意数组中有重复元素的情况,后面的会覆盖前面的元素,所以从前到后,然后遍历hash表就行。[3, 2, 4],6 : 这种情况,就需要判断当前下标与hash表中的索引是不是一样。如果一样 就证明一个元素用了两次class Solution: def __init__(self): self.my_set = {} def tw

2020-07-08 14:20:20 27

原创 传统必会算法--快速排序

指定最后一个元素是privot [遍历前面的与他比较],counter表示雄安与privot的元素的个数,如果当前 i 的值小于privot则 交换counter位置与 i 位置的元素[通过这样遍历完毕则前counter全都小于privot],并且counter++,然后只需要最后一轮交换privot与counter的元素public class QuickSort { public static void sort(int[] input, int begin, int end) {

2020-07-07 21:57:10 31

原创 Python刷leetcode--剑指 Offer 07.重建二叉树

树的问题需要多往递归上想。然后中序遍历是三种遍历中最关键的遍历。中序遍历找到先序遍历后 先序遍历之后的几个 = 中序遍历左边的几个class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def buildTree(self, preorder, inorder): #

2020-07-05 19:18:20 32

原创 Python刷leetcode--剑指 Offer 10- II.青蛙跳台阶问题

思路:先递归,再优化递归。拖慢递归的原因是重复的底层计算。所以计算过一次就存起来。每次计算就判断是不是已经计算过了class Solution: def __init__(self): self.val = {} self.count = 0 def numWays(self, n: int) -> int: # leetcode submit region end(Prohibit modification and deletion

2020-07-05 19:10:44 1761

原创 Python刷leetcode--栈模拟队列、队列模拟栈

1.s1负责入队操作2.s2中如果没有元素就从s1中出栈出完,s2再出栈3.处理特殊情况,如果是空队列出队。判断两次是否s2空就行class CQueue: def __init__(self): self.s1 = [] self.s2 = [] def appendTail(self, value: int) -> None: self.s1.append(value) def deleteHead(self) -

2020-07-04 19:46:00 36

原创 Python刷leetcode--剑指 Offer 04.二维数组中的查找

思路:从右上角开始往左边下边移动。如果从0,0开始,判断一个数如果处于两个数之间了,向下之后还需要向右。两条路[ 右、下 ]都是比当前大的,但是如果是右上角,左边都是小的,下边都是大的,j=1后j=0就肯定不用看了,因为j=0都小于j=1.同理左移的话,右面的数也都不需要看class Solution: def findNumberIn2DArray(self, matrix, target: int) -> bool: # def findNumberIn2DArray

2020-07-04 19:19:01 35

原创 Python刷leetcode--22.括号生成 [dfs经典问题]

class Solution: def generateParenthesis(self, n: int): # def generateParenthesis(self, n: int) -> List[str]: # leetcode submit region end(Prohibit modification and deletion) ans = [] self.dfs(n, n, ans, '') # 左右括号、an

2020-06-29 01:48:39 23

原创 Python刷leetcode--104.二叉树的最大深度\111.二叉树的最小深度

最大深度class Solution: def maxDepth(self, root: TreeNode) -> int: # leetcode submit region end(Prohibit modification and deletion) if not root: return 0 return 1 + max(self.maxDepth(root.left), self.maxDepth(root.ri

2020-06-29 01:03:52 27

原创 Python刷leetcode--23.合并K个排序链表 [链表]

解法一:将链表缓存出来,然后排序 最后出来class Solution: def mergeKLists(self, lists) -> ListNode: # leetcode submit region end(Prohibit modification and deletion) my_list = [] for thelist in lists: i = thelist while i:

2020-06-27 21:58:38 421

原创 Python刷leetcode--19. 删除链表的倒数第N个节点 [链表]

class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: # leetcode submit region end(Prohibit modification and deletion) tmp, tmp.next = ListNode(None), head pre = cur = tmp while n:

2020-06-27 21:08:33 30

原创 Python刷leetcode--2.两数相加 [链表]

class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: # leetcode submit region end(Prohibit modification and deletion) ans = cur = ListNode(None) # return flag = 0 while l1 or l2 or flag:

2020-06-27 16:14:25 36

原创 Python刷leetcode--102.二叉树的层序遍历

一般来说 数据结构 左面都是头,右面都是尾。新增操作也一般在右面。 [在右侧操作 ]二叉树的层次遍历 [普通]import collectionsclass TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def levelOrder(self, root): # def

2020-06-19 23:47:41 77

原创 Python刷leetcode--739. 每日温度

import collectionsclass Solution: def dailyTemperatures(self, T): stack = collections.deque() stack.append([0, T[0]]) for i in range(len(T)): if i == 0: continue else: w

2020-06-19 13:41:46 46

原创 Python刷leetcode--20.有效的括号

卧草,链表真是恶心到我了,,做几道水题,,平复一下心情import collectionsclass Solution: def isValid(self, s: str) -> bool: a = collections.deque() set1 = {'(', '{', '['} set2 = {')': '(', '}': '{', ']': '['} for i in s: if i in

2020-06-18 17:51:21 39

原创 Python刷leetcode--242.有效的字母异位词

解法解法一:class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s) != len(t): return False res = {} for i in s: if i in res: res[i] += 1 else: re

2020-06-18 12:05:34 49

原创 Python对比Java集合框架、collections包简单总结

python的队列与栈 deque == Java中的ArrayDequepython中的 dict == Java中的HashMappython中的list == Java中的ArrayLiastpython中的 OrderDict == Java中的LinkedHashMappython中的set == Java中的HashSet现在我感觉set跟dict更像,,这两种数据结构,,都是快速查找有没有的。。注意,什么值才能是set与dict的key,能hash的值。使用lis.

2020-06-18 12:01:00 49

原创 python dict与set的使用

Dict操作dict赋值d['Paul'] = 72dict访问一、>>> print d['Adam']95>>> print d['Paul']Traceback (most recent call last): File "index.py", line 11, in <module> print d['Paul']KeyError: 'Paul'if 'Paul' in d: print d['Paul']

2020-06-18 11:58:30 46

原创 Python刷leetcode--344. 反转字符串

解法解法一:[双指针]class Solution: def reverseString(self, s): """ reverseString(self, s: List[str]) -> None: 一定注意s是一个列表 """ l, r = 0, len(s) - 1 while l < r: s[l], s[r] = s[r], s[l] l, r = l + 1, r

2020-06-18 11:48:36 34

原创 一篇文章再也不会忘记Python切片的用法。[不用背]

先切下来[不管正负,正负不过代表的是索引],再正推 或者 反推[步长like一个C语言里面的指针]注意事项理解切片的意义。切片:切下来一片。重点是切下面的画黄色关键词请记好:根据下标 start、end, 包含start不包含end,如果是负数的话就倒着数确定为坐标。或者用长度加一下计算出正的坐标。举例子:如果长度为5 [:-1] 等价于[:-1 :]等价于[:4:]等价于[:4:1],然后用1的步长遍历一下从start位置开始移动指针[步长] [注意上面所说的步长为正则正向移动

2020-06-17 23:40:22 41

原创 6月17日 查漏补缺

一、刚开始让自我介绍说了一下姓名,学校[该不该说名字,尬死了。。],然后说了一下大学的经历。从大二开始在实验室 做过什么项目名、。之类的。说一下项目,说感觉最有用的学到最多的还有过程咋麦穗识别那个。然后mongo 联表、spring data mongo,又讲了一下我的设计思路,技术选型。我也不知道听懂了没他,,他也不问我,也不拆穿我,,我也不知道说错没。。服了。二、技术问题1. Java1.1 Object的方法有哪些。答:clone、equals、hashcode。[卧草,这个不应该说的这

2020-06-17 21:04:58 45

原创 pyqt5模块类别总结

pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法。pyqt5的类别分为几个模块,包括以下:QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程。QtGui包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类。QtMultimedia包含的类来处理多媒体内容和API来访问相机和收音机的功能。Qtbluetooth模块

2020-06-08 13:22:32 77

原创 pyqt5入门到入门 [配合pycharm]

https://www.lagou.com/lgeduarticle/109104.html-m PyQt5.uic.pyuic FileNameFileNameFileName -o FileNameWithoutExtensionFileNameWithoutExtensionFileNameWithoutExtension.py1. 安装库 [Python version>3.5]pip install PyQt5pip install PyQt5-tools2. 配置pychar

2020-06-07 19:07:14 74

原创 完美解决,python自定义模块找不到问题

遇见过4、5次了,有点恶心,记录一下首先需要初始化包创建__init__.py 在项目下,以及包下解决方法一关闭Pycharm删除 .idea、*.iml [项目结构文件]重新打开这个工程然后就不会报错了解决方法二import syssys.path.append("..")  # 模块父目录下的model文件中from model import a...

2020-06-07 18:00:53 549

原创 SpringData使用ES报错 org.elasticsearch.index.mapper.MapperParsingException: No type specified for field

原因就像mysql的字段要跟Java基本类型对应一样,ES的字段也要与Java的基本类型相对应。一、而且这个最好新建一个ES索引库,否则可能会有问题。我用Restful操作初始化了一个ES索引库,并增加数据,再用Java操作的时候,Springboot启动会报错。二、还有就是实体类的Document注解indexName、Type都要有需要检索的字段@Field(index=true),并且设置type = FieldType.Text。package com.wheatdr.search.po

2020-05-15 14:40:56 196

原创 Java Selenium 爬取微信公众号文章图片.md

项目地址结尾一、前期准备1. 下载selenium的驱动Chromehttp://chromedriver.storage.googleapis.com/index.htmlFirefoxhttps://github.com/mozilla/geckodriver/releases/IEhttp://selenium-release.storage.googleapis.com/index.html下载好驱动然后放到、对应的浏览器的启动目录[外链图片转存失败,源站可能有防盗链机制,建.

2020-05-09 22:04:19 128

原创 爬虫快速入门方法论总结 [Java、Python]

爬虫总结两个要点解析方式CSSXPath爬取方式自动化测试 [selenium模拟浏览器]获取网页的文本 [解析]一、解析方式CSS定位器CSS=Casading Style Sheets样式定义如何显示HTMl元素为什么不直接使用属性设置元素用id class可以直接操作,不用样式表维护麻烦CSS与JSCSS 基础语法选择器: selector{declaration1;…;desclarationN}声明:property:valueCSS

2020-05-09 20:42:57 253

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