自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenlang2015的博客

https://chenglang2015.cn

  • 博客(209)
  • 资源 (1)
  • 收藏
  • 关注

原创 java设计模式-单例模式

单例模式懒汉模式public class Singleton_01 { //懒汉模式(线程不安全) public static Singleton_01 instance; private Singleton_01() { } public static Singleton_01 getInstance(){ if(instance!=null){ return insta

2021-06-01 16:04:43 151 2

原创 Leetcode-判断平衡二叉树

Leetcode-判断平衡二叉树1.题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true2.解题思路根据上面平衡二叉树的判断条

2021-05-12 10:54:46 264

原创 java 面试系列-线程池

java 面试-线程池的理解java 线程池的理解?1.使用线程池的好处?降低系统资源消耗,通过重用已经存在的线程,降低线程和销毁造成的的消耗。提高系统响应速度,当有任务到达时,通过复用已经存在的线程,无需等待新线程的创建。方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场)。提供更强大的功能,延时定时线程池。2.线程池的主要参数public Th

2021-05-08 08:55:59 785

原创 Leetcode- 打家劫舍

1.问题描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 ..

2021-03-30 21:58:05 110

原创 Leetcode-滑动窗口之字符串的排列

1.题目描述给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例 1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例 2:输入: s1= "ab" s2 = "eidboaoo"输出: False2.解题思路滑动窗口 + 字典分析一: 题目要求 s1的排列之一是 s2的一个子串。而子...

2021-03-01 20:27:20 146

原创 leetcode-买卖股票的最佳时机 II

1.题目描述给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)...

2021-02-15 20:02:26 115

原创 Leetcode-123. 买卖股票的最佳时机 III

1.题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。 随后,在第 7 天(股票价格 = 1)...

2021-02-15 19:43:13 119

原创 leetcode-1248. 统计「优美子数组」

1. 题目描述给你一个整数数组nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4,6], k = 1输出:0解释:数列中不包含任何奇数,所以不存在优美子数组。示例 3:...

2021-02-08 19:34:23 403

原创 Leetcode-和为K的子数组

1.题目描述给你一个整数数组arr。请你返回和为 奇数的子数组数目。由于答案可能会很大,请你将结果对10^9 + 7取余后返回。示例 1:输入:arr = [1,3,5]输出:4解释:所有的子数组为 [[1],[1,3],[1,3,5],[3],[3,5],[5]] 。所有子数组的和为 [1,4,9,3,8,5].奇数和包括 [1,9,3,5] ,所以答案为 4 。示例 2 :输入:arr = [2,4,6]输出:0解释:所有子数组为 [[2],[2,4]...

2021-02-07 22:01:11 302

原创 Leetcode-完全平方数

1.题目描述给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例1:输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2...

2021-02-04 20:55:14 361

原创 Leetcode-组合总和IV

1.题目描述给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。2.题意解析读完题目,这个题目的本质就是一个完全背包问题。但是这个题目的深层意思就是求排列不是 组合,所以在遍历背包的顺序

2021-02-02 20:22:58 156 1

原创 Leetcode-目标和

目录1.题目描述2.解题思路3.源代码实现1.题目描述给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3...

2021-02-01 22:20:32 230

原创 Leetcode-单词拆分

1.题目描述给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", .

2021-01-30 21:27:00 266

原创 Leetcode-分割等和子集

1.题目描述给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.2.解题思路首先可以将本题转换为01 背包问题。为什么可以转..

2021-01-30 20:57:08 233

原创 Leetcode- 岛屿数量

1.题目描述给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:grid.

2021-01-17 15:33:19 1134

原创 Leetcode-最长公共子序列

目录1.题目描述2解题思路2.1 题意解析2.2 动态规划思路2.3 总结3.源代码1.题目描述给定两个字符串text1 和text2,返回这两个字符串的最长公共子序列的长度。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同...

2021-01-12 19:13:33 1304

原创 Leetcode-最长回文子序列

1.题目描述给定一个字符串s,找到其中最长的回文子序列,并返回该序列的长度。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。2.解题思路本题属于使用动态规划方法解决的一道题,回文序列的意思应该不用去解释了。做动态规划的题目,首先要去定义dp数组的含义。这里我们定义一个二维数组dpdp[i][j]表示字符...

2021-01-12 14:46:03 376

原创 Leetcode- 分割回文串 II

目录1.题目描述2. 解题思路2.1 动态规划3.源代码1.题目描述给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回符合要求的最少分割次数。示例:输入: "aab"输出: 1解释: 进行一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。2. 解题思路2.1 动态规划没做过 5.最长回文串 和 131. 分割回文串 可以先去做下因为要切割出多个回文串,那么意味着就我们需要判断哪个子串是回文串,如果我们不做预处理,那...

2021-01-10 20:05:15 148

原创 Leetcode-分割回文串

目录1.题目描述2.解题思路3. 源代码3.1 回溯法3.2 回溯的优化(记忆化搜索)4. 总结1.题目描述给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例1:输入: "aab"输出: 1解释: 进行一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。2.解题思路本题这涉及到两个关键问题:切割问题,有不同的切割方式1.判断回文2.相信这里不同的切割方式可以搞懵很多同学了。...

2021-01-09 21:31:15 545

原创 Leetcode-最长回文子串

1.题目描述给你一个字符串s,找到s中最长的回文子串。示例一:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例二:输入:s = "cbbd"输出:"bb"示例三:输入:s = "a"输出:"a"2.解题思路根据题目的意思我们可以知道简单的循环暴力解法加上判断字符串是否是回文字符串时间可能会超出限制。所以我们在判断回文字符串的时候采用双指针的思想,运用中心扩展法来解决问题。因为回文串是中心对称的,我们可以先枚举...

2021-01-09 16:57:23 1511 1

原创 Leetcode-无重叠区间

1.题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。2.解题思路首先要对区间的头进行排序,这里以区间的开始来排序,然后再遍历区间。1.如果后面区间的头小于当前区间的尾,比如当前区间[2,6],后面区间是[3,4]或者是[2,5]。说明这两个区间有重复,必须要移除一个,那么移除哪一个呢?为了防止下一个区间和现有的区间有重叠,我们应该让现有区间

2021-01-08 19:40:28 201 2

原创 Leetcode-旋转数组

1.题目描述定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99...

2021-01-08 14:53:44 147

原创 Leetcode-验证回文字符串 Ⅱ

1.题目描述给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。2.解题思路题目问我们最多删除一个字符的情况下是否可以构成回文字符串,第一反应是逐个删除各个字符看剩下的字符串是否为回文串,但是这个时间复杂度是 O(N ^ 2),题目给出的字符串的长度最大为 50000 ,此做法会超时。回文串的特点是左右对称。假如有两个指针从字符串的两.

2021-01-07 17:28:48 199

原创 Leetcode- 平方数之和

1.题目描述给定一个非负整数c,你要判断是否存在两个整数a和b,使得a2+ b2= c。示例1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例2:输入:c = 3输出:false2.解题思路可以看成是在元素为0~target 的有序数组中查找两个数,使这两个数的平方和为target,如果能找到,则返回true,如果不能找到则返回false。 本题的关键是右指针的初始化,实现剪枝,从而降低时间复杂度。设右指针为 x,左指针固...

2021-01-07 16:02:46 384

原创 Leetcode-组合总和 Ⅳ

1. 题目描述给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。2.解题思路初看问题的时候就认为回溯可以可以解决,即运用简单的递归就可以。int ans=0;public in.

2021-01-06 14:56:49 146

原创 Leetcode-完全平方数

目录1.题目描述2.解题思路3.源代码4.完全背包问题1.题目描述给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例2:输入: n = 13输出: 2解释: 13 = 4 + 9.2.解题思路这个问题就是完全背包问题的简单变种,在这里,平方数sqr就是物品的重量weight,物品产...

2021-01-05 20:10:53 243

原创 Leetcode-团灭组合问题

目录1.问题描述2.解题思路2.1 算法思路3.源代码4.其他组合总和问题4.1Leetcode40-组合总和 II4.2Leetcode216-组合总和 III1.问题描述给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合示例1...

2021-01-04 15:16:25 95

原创 LeetCode-全排列

1.题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]2.思路和算法这个问题可以看做是n个排列成一行的空格,我们需要从左往右依此填入题目给定的 n 个数,每个数只能使用一次。那么很直接的可以想到一种穷举的算法,即从左往右每一个位置都依此尝试填入一个数,看能不能填完这 nn 个空格,在程序中我们可以用「回溯法」..

2021-01-01 18:31:30 264 2

原创 Layui与java后台交互

Layui与java后台交互目录Layui与java后台交互一、返回的Json格式二、前台代码三、pojo类四、Service层五、Contrller层layui是现在比较火的一个前端设计框架,下面介绍一下它的数据分页及其与java后台的交互。一、返回的Json格式按照layui官网给的示例,自己封装了工具类,解析json数据格式,前端页面请求Controller获取json数据的格式,然后利用工具类将json解析,把数据显示在前端页面。@Datapubli.

2020-09-08 11:48:13 5617 1

原创 Leetcode-76. 最小覆盖子串

目录1.题目描述1.1 实例一:2.解题思路2.1 滑动窗口思想2.2 面临的问题2.3 优化3.图示解题思路4.代码5.提交运行详情1.题目描述给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。1.1 实例一:输入:S = "ADOBECODEBANC", T = "ABC"输出:"BANC"提示:如果 S 中不存这样的子串,则返回空字符串...

2020-08-21 16:29:35 107

原创 Leetcode-Pow(x,n) 快速幂经典题题目

Leetcode-Pow(x,n) 快速幂经典题题目目录Leetcode-Pow(x,n) 快速幂经典题题目1.题目描述2.解题思路3.源码1.题目描述实现pow(x, n),即计算x的n次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = ...

2020-08-17 15:03:49 179

原创 Java 并发基础常见面试题总结

1. 什么是线程和进程?1.1. 何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行)。1.2. 何为线程?...

2020-07-27 15:48:44 84

原创 LeetCode-03 无重复字符的最长子串

LeetCode-03 无重复字符的最长子串目录LeetCode-03 无重复字符的最长子串1.题目描述2.主要思路3.实现代码3.1 最简单的利用数组来进行操作3.2 双指针1.题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",...

2020-07-24 14:37:47 149

原创 Java 集合框架那些事

Java 集合框架那些事1.说说 List,Set,Map 三者的区别?List(对付顺序的好帮手): 存储的元素是有序的、可重复的。 Set(注重独一无二的性质): 存储的元素是无序的、不可重复的。 Map(用 Key 来搜索的专家): 使用键值对(kye-value)存储,类似于数学上的函数 y=f(x),“x”代表 key,"y"代表 value,Key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。2.集合框架底层数据结构总结先来看一下Coll...

2020-07-24 10:17:03 165

原创 一步一步教你如何在GitHub上上传自己的项目

首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join。这里就省略注册的过程,按照弹出来的画面就可以了。有了自己的账号以后,就可以进行登录,开始创建一个新的项目。创建一个新的项目,填写项目名称,描述创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上传代码的时候需要使用:接下来,我们需要先下载Git,这里最好下载...

2020-05-07 17:26:17 1218

原创 anaconda下载catboost

一、出现的问题首先在anaconda终端输入以下命令:conda install catboost后来还是发生了报错:Collecting package metadata (current_repodata.json): failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda....

2020-05-06 19:13:47 1825 3

原创 pandas_02基础 之索引那些事

一、单级索引1. loc方法、iloc方法、[]操作符最常用的索引方法可能就是这三类,其中iloc表示位置索引,loc表示标签索引,[]也具有很大的便利性,各有特点(a)loc方法 ① 单行索引:import numpy as npimport pandas as pddf = pd.read_csv('joyful-pandas/data/table.csv',in...

2020-05-05 19:27:02 149

原创 01_pandas基础

一、pandas读取操作1、读取csv格式这里只是注意下文件的相对路径df = pd.read_csv('data/table.csv')df.head()2、读取txt 格式df_txt = pd.read_table('data/table.txt') #可设置sep分隔符参数df_txt3、xls或xlsx格式#需要安装xlrd包df_excel = ...

2020-05-04 20:35:43 188

原创 Springboot整合Mybatis web小项目

Springboot整合Mybatis web小项目目录Springboot整合Mybatis web小项目1.在pom.xml导入相关的依赖.2.建立数据库3.编写实体类Entity4.配置application.properties5.Service层6.Controller层7.页面实现的效果1.在pom.xml导入相关的依赖.Mybati...

2020-04-23 16:34:17 276

原创 Mysql使用过程中碰到的几个问题

Mysql使用过程中碰到的几个问题目录Mysql使用过程中碰到的几个问题1.mysql的安装碰到的几个坑2.mysql 5.7.27或者以上版本遇到的版本问题造成的原因1.mysql的安装碰到的几个坑小编是一位刚学习Java不久的小白,最近学到数据库就也试着安装MySQL软件。去官网下载软件时发现5.7版本里只有5.7.27,而我在网上找的安装教程也只是版本号相近,这似乎也...

2020-04-22 15:46:39 233

2016年上半年软件设计师下午案例分析真题及答案

2016年上半年软件设计师下午案例分析真题及答案,同时进行

2017-12-26

空空如也

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

TA关注的人

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