自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(291)
  • 收藏
  • 关注

原创 spring源码走读系列 —— 事务的传播机制

本文的源码位于 org.springframework.transaction.TransactionDefinition该类定义了事务的传播机制PROPAGATION_REQUIREDspring 的默认传播机制 。支持方法在当前事务中运行,如果当前不存在事务则新建一个事务。所以如果配置为该级别,则一定能保证在事务中运行。 /** * Support a current transaction; create a new one if none exists. * Analogous

2022-04-10 14:01:47 992

原创 名企中等——最长公共子串

题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。示例1输入“1AB2345CD”,“12345EF”返回值“2345”解析:注意dp的定义 : dp[i][j] str1前i个字符和str2前j个字符(以其为尾字符)的最长公共子串长度。所以初始化数组时 dp的长度均+1。先固定字符串1中的字符,然后和2中的所有字符比较。对1中的字符循环。public class Solution { /** * longest

2021-01-20 22:41:05 190

原创 【名企中等】寻找第K大

https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf?tpId=117&&tqId=35010&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证

2021-01-13 23:25:03 227

原创 名企中等——最大正方形

https://www.nowcoder.com/practice/0058c4092cec44c2975e38223f10470e?tpId=117&&tqId=35033&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述给定一个由0和1组成的2维矩阵,返回该矩阵中最大的由1组成的正方形的面积输入[[1,0,1,0,0],[1,0,1,1,1],[1,1,1,1,1],

2021-01-11 22:51:04 185

原创 名企中等——矩阵的最小路径和

https://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb?tpId=117&&tqId=35078&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和

2021-01-02 21:33:33 132

原创 名企中等——子数组最大乘积

https://www.nowcoder.com/practice/9c158345c867466293fc413cff570356?tpId=188&&tqId=36848&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking题目描述给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。示例1输入[-2.5,4,0,3,0.5

2021-01-02 19:07:18 135

原创 名企中等——找到字符串的最长无重复字符子串

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4?tpId=188&&tqId=36856&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking题目描述给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。示例1输入[2,3,4,5]返回值4

2020-12-29 23:15:05 126

原创 名企中等——把数字翻译成字符串

题目描述有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。现在给一串数字,返回有多少种可能的译码结果输入“12”返回值2说明2种可能的译码结果(”ab” 或”l”)示例2输入“31717126241541717”返回值192import java.util.*;public class Solution { /** * 解码 * @param nums string字符串 数字串

2020-12-23 00:05:25 404

原创 名企中等——环中路径

一个环上有10个点,编号为0-9,从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,求:经过n步又回到0点有多少种不同的走法?举例:如果n = 1,则从0出发只能到1或者9,不可能回到0,共0种走法如果n = 2,则从0出发有4条路径:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有两条回到了0点,故一共有2种走法...

2020-12-21 22:52:51 155

原创 名企中等——丢棋子的次数

https://www.nowcoder.com/practice/d1418aaa147a4cb394c3c3efc4302266?tpId=117&&tqId=35279&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述一座大楼有N层,地面算作第0层,最高的一层为第N 层。已知棋子从第0层掉落肯定不会摔碎,从第i层掉落可能会摔碎,也可能不会摔碎。给定整数N作为楼层数,再给定

2020-12-20 22:57:56 204

原创 名企中等——最长回文子串

https://leetcode-cn.com/problems/longest-palindromic-substring/submissions/给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-p

2020-12-20 15:47:25 130 1

原创 名企中等——最长回文子串的长度

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=117&&tqId=35044&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入“abc123432

2020-12-20 15:25:18 170 1

原创 名企入门难度——反转字符串

https://www.nowcoder.com/practice/c3a6afee325e472386a1c4eb1ef987f3?tpId=117&&tqId=35028&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)示例1输入“abcd”返回值“dcba”最简单思路:

2020-12-20 12:38:31 115 1

原创 牛客——最长递增子序列

https://www.nowcoder.com/practice/9cf027bf54714ad889d4f30ff0ae5481?tpId=117&&tqId=35013&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking题目描述给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的)示例1输入[2,1,5,3,6,4,8,9,7]返

2020-12-19 23:01:00 214 1

原创 leetcode——最长递增子序列的个数

https://leetcode-cn.com/problems/number-of-longest-increasing-subsequence/给定一个未排序的整数数组,找到最长递增子序列的个数。示例 1:输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。示例 2:输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。注意: 给定的数组长

2020-12-18 00:30:32 137

原创 剑指 Offer 63. 股票的最大利润

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。限制:0 <= 数组长度 <

2020-12-16 00:02:35 75

原创 剑指 Offer 68 - II. 二叉树的最近公共祖先

https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例

2020-12-15 23:04:52 88

原创 剑指offer——礼物的最大价值

https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcof/在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1] ]输出: 12解释: 路径 1→3→5→2

2020-12-13 11:27:10 90

原创 前言

碰到做过的题目该怎么办?面试算法题要怎么做?面试在考察什么?

2019-10-19 22:10:15 134

原创 剪绳子

题目描述给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)示例1输入8...

2019-10-19 16:14:28 311

原创 【笔记】高性能MySQL(第三版)——第4章:MySQL基准测试

4.1选择优化的数据类型更小的通常更好。一般应该尽可能使用能正确存储数据的最小数据类型,更小的数据类型通常更快,因为他们占用更少的磁盘、内存和CPU缓存,并且处理需要的CPU周期更少。简单就好。整型比字符串操作代价更低。 两个例子:1、应该用MySQL内建的类型来记录日期和时间 2、应该用整型来存储IP地址(IP地址正好是32位,而且都是01值,可以转换成整形数值)尽量避免null。可为N

2017-09-27 11:00:45 700

转载 【笔记】高性能MySQL(第三版)——第2章:MySQL基准测试

基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。简单地说,基准测试是针对系统设计的一种压力测试。通常的目标是为了掌握系统的行为。但也有其他原因,如重现某个系统状态,或者做新硬件的可靠性测试。2.1 为什么需要基准测试基准测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些

2017-09-27 10:27:39 420

原创 【笔记】高性能MySQL(第三版)——第1章:MySQL架构与历史

1.1MySQL服务器逻辑架构最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。第二层架构是MySQL比较有意思的部分。大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、

2017-09-26 16:16:59 433

转载 Spring技术内幕——DataSourceTransactionManager

Spring的事务处理中,通用的事务处理流程框架是由抽象事务管理器AbstractPlatformTransactionManager来提供的,而具体的底层事务处理实现,由PlatformTransactionManager的具体实现类来实现,如 DataSourceTransactionManager 、JtaTransactionManager和 HibernateTransactionMan

2017-09-17 16:22:04 10062

转载 Spring技术原理——事务的创建,挂起,回归,提交(事务拦截器和抽象事务管理器)

在涉及单个数据库局部事务的事务处理中,事务的最终实现和数据库的支持是紧密相关的。对局部数据库事务来说,一个事务处理的操作单元往往对应着一系列的数据库操作。Spring事务处理主要分以下三个主要的过程:(1)读取和处理在Spring IoC容器中配置的事务处理属性,并转化为Spring事务处理所需要的内部数据结构。这里涉及到的类是TransactionAttributeSourceAdvis...

2017-09-15 14:34:12 6967 2

原创 Spring技术内幕——Spring MVC与Web环境(未完)

本章主要讲述1、分析Spring的IoC容器是怎样在Web应用环境中发挥作用的 2、分析Spring MVC框架的实现原理4.2 Web环境中的Spring MVC如果要在Web环境中使用IoC容器,需要Spring为IoC设计一个启动过程。http://blog.csdn.net/zuoluoboy/article/details/4213053 (web.xml的作用到底是什么,如

2017-09-11 21:46:44 277

原创 Spring技术内幕——AOP的实现

维基百科对“AOP”相关概念的叙述:Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装、维护,这样原本分散在整个

2017-09-09 22:05:58 367

原创 Spring技术内幕——IOC部分摘录

哪些方面的控制被反转了?(名词“依赖注入”的由来)Spring IOC的容器设计中,有两种主要的容器系列,一个是实现BeanFactory接口的简单容器系列;另一个是ApplicationContext应用上下文,增加了许多面向框架的特性同时对应用环境做了适配。(下图中全是接口)三套接口体系: 1、从接口BeanFactory道Hierarchica

2017-09-08 00:23:23 341

原创 Spring技术内幕——依赖注入

假设当前IoC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理。首先,注意到依赖注入的过程是用户第一次向IoC容器索要Bean时触发的,当然也有例外,也就是我们可以在BeanDefinition信息中通过控制lazy-init属性来让容器完成对Bean的预实例化。这个预实例化实际上也是一个完成依赖注入的过程,但它是在初始化的过程中完成的,稍后我们会详细分析这个预实例化的处理。当用户向I

2017-09-07 23:21:20 227

转载 SpringMVC和Struts2的区别

https://www.zhihu.com/question/31565442Struts2处理请求是为每个请求都创建一个单独的Action类,Action类当中的Field属性参数作为输入和输出参数用IOC来依赖注入的方式,是基于类的。而SpringMVC则采用输入Request和Reponse作为参数,返回ModelAndView的方式,是单例的模式,且是基于方

2017-08-25 22:43:10 307

原创 Redis为什么是单线程

转自:https://www.zhihu.com/question/23162208 https://www.zhihu.com/question/55818031Redis为什么是单线程的?因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。(以上主要来自官方FAQ)既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。关于redis的

2017-08-24 19:03:55 16033 2

转载 正则表达式中的贪婪匹配和懒惰匹配

1.什么是正则表达式的贪婪与非贪婪匹配  如:String str="abcaxc";    Patter p="ab*c";  贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc  非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc

2017-08-24 16:35:50 711

原创 java Pattern和Matcher——用于匹配和查找字符串中的内容

总结:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input):一种最基础最简单的匹配。Java正则表达式通过Java.util.regex包下的Pattern类与Matcher类实现(建议在

2017-08-24 15:54:57 969

原创 编程题——识别有效的IP地址和掩码并进行分类统计

网址:https://www.nowcoder.com/practice/de538edd6f7e4bc3a5689723a7435682?tpId=37&tqId=21241&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking题目描述请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合

2017-08-24 15:48:16 544

原创 leetCode——word ladder(Java实现)

Given two words (start and end), and a dictionary, find the length of shortest transformation sequence fromstart to end, such that: Only one letter can be changed at a time Each intermediate w

2017-08-24 14:06:57 509

转载 shell中各种括号()、(())、[]、[[]]、{}的作用及使用场景

转自:http://blog.csdn.net/ztf312/article/details/52317571技巧小结:字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格快速替换用花括号{ }——左右留空格反单引号起着命令替换的作用` `

2017-08-23 21:44:54 560

原创 Linux重点知识整理

基本概念:文件权限(http://blog.csdn.net/qqqqq1993qqqqq/article/details/73544513):文件权限前的一个字母用来表示文件类型: -:一般文件 d:目录文件 b:块设备文件(如,硬盘) c:字符设备文件(如,键盘、鼠标) l:链接文件(相当于Window中的快捷方式) p:人工管道 n:网络设备

2017-08-23 20:56:33 266

转载 MySQL触发器详解

转自:http://www.cnblogs.com/duodushu/p/5446384.html  http://www.cnblogs.com/zzwlovegfj/archive/2012/07/04/2576989.htmlMySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。

2017-08-23 16:39:24 718 1

转载 ReentrantReadWriteLock分析

转自http://blog.csdn.net/vernonzheng/article/details/8297230一、ReentrantReadWriteLock与ReentrantLock  说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。R

2017-08-19 11:43:04 246

转载 AbstractQueuedSynchronizer源码分析二(共享锁部分)

前言经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueuedSynchronizer(下文简称AQS)的独占功能了然于胸,那么,这次我们再借助另一个工具类:CoutDownLatch,换个角度看看AQS的另外一个重要功能——共享功能的实现。AQS共享功能的实现在开始解读AQS的共享功能前...

2017-08-18 16:24:02 277

空空如也

空空如也

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

TA关注的人

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