java web 学习之路
文章平均质量分 71
一梦花海
大学生学习计算机
展开
-
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 · 304 阅读 · 0 评论 -
java 面试系列-线程池
java 面试-线程池的理解java 线程池的理解?1.使用线程池的好处?降低系统资源消耗,通过重用已经存在的线程,降低线程和销毁造成的的消耗。提高系统响应速度,当有任务到达时,通过复用已经存在的线程,无需等待新线程的创建。方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场)。提供更强大的功能,延时定时线程池。2.线程池的主要参数public Th原创 2021-05-08 08:55:59 · 834 阅读 · 0 评论 -
Leetcode- 打家劫舍
1.问题描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 ..原创 2021-03-30 21:58:05 · 152 阅读 · 0 评论 -
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 · 178 阅读 · 0 评论 -
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 · 138 阅读 · 0 评论 -
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 · 162 阅读 · 0 评论 -
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 · 480 阅读 · 0 评论 -
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 · 378 阅读 · 0 评论 -
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 · 448 阅读 · 0 评论 -
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 · 216 阅读 · 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 · 283 阅读 · 0 评论 -
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 · 330 阅读 · 0 评论 -
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 · 266 阅读 · 0 评论 -
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 · 1188 阅读 · 0 评论 -
Leetcode-最长公共子序列
目录1.题目描述2解题思路2.1 题意解析2.2 动态规划思路2.3 总结3.源代码1.题目描述给定两个字符串text1 和text2,返回这两个字符串的最长公共子序列的长度。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同...原创 2021-01-12 19:13:33 · 1426 阅读 · 0 评论 -
Leetcode-最长回文子序列
1.题目描述给定一个字符串s,找到其中最长的回文子序列,并返回该序列的长度。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。2.解题思路本题属于使用动态规划方法解决的一道题,回文序列的意思应该不用去解释了。做动态规划的题目,首先要去定义dp数组的含义。这里我们定义一个二维数组dpdp[i][j]表示字符...原创 2021-01-12 14:46:03 · 414 阅读 · 0 评论 -
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 · 167 阅读 · 0 评论 -
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 · 668 阅读 · 0 评论 -
Leetcode-最长回文子串
1.题目描述给你一个字符串s,找到s中最长的回文子串。示例一:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例二:输入:s = "cbbd"输出:"bb"示例三:输入:s = "a"输出:"a"2.解题思路根据题目的意思我们可以知道简单的循环暴力解法加上判断字符串是否是回文字符串时间可能会超出限制。所以我们在判断回文字符串的时候采用双指针的思想,运用中心扩展法来解决问题。因为回文串是中心对称的,我们可以先枚举...原创 2021-01-09 16:57:23 · 1603 阅读 · 1 评论 -
Leetcode-无重叠区间
1.题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。2.解题思路首先要对区间的头进行排序,这里以区间的开始来排序,然后再遍历区间。1.如果后面区间的头小于当前区间的尾,比如当前区间[2,6],后面区间是[3,4]或者是[2,5]。说明这两个区间有重复,必须要移除一个,那么移除哪一个呢?为了防止下一个区间和现有的区间有重叠,我们应该让现有区间原创 2021-01-08 19:40:28 · 222 阅读 · 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 · 189 阅读 · 0 评论 -
Leetcode-验证回文字符串 Ⅱ
1.题目描述给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。2.解题思路题目问我们最多删除一个字符的情况下是否可以构成回文字符串,第一反应是逐个删除各个字符看剩下的字符串是否为回文串,但是这个时间复杂度是 O(N ^ 2),题目给出的字符串的长度最大为 50000 ,此做法会超时。回文串的特点是左右对称。假如有两个指针从字符串的两.原创 2021-01-07 17:28:48 · 227 阅读 · 0 评论 -
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 · 414 阅读 · 0 评论 -
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 · 185 阅读 · 0 评论 -
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 · 337 阅读 · 0 评论 -
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 · 190 阅读 · 0 评论 -
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 · 313 阅读 · 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 · 5742 阅读 · 1 评论 -
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 · 384 阅读 · 0 评论 -
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 · 249 阅读 · 0 评论 -
组合模式读书笔记
组合模式读书笔记文章目录模式定义模式结构通用源代码实现应用场景和具体实现组合模式的优缺点:1.组合模式的优点2.组合模式的缺点适用场景2.组合模式的缺点适用场景模式定义组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元...原创 2019-11-19 20:32:11 · 326 阅读 · 0 评论 -
在Tomcat上部署和发布一个新的Web项目
新建一个web应用1.选择新建file-new-DynamicProject。 2.创建一个Dynamic Web Project 3.点击“Next”下一步 4.点击“Next”下一步 5.点击“Finish”完成 让Tomcat服务器显示在控制台上,将Web应用部署到Tomcat中1.Window → Show View ...原创 2019-01-23 10:57:40 · 869 阅读 · 0 评论 -
eclipse环境下如何配置tomcat
eclipse环境下如何配置tomcat 1.打开Eclipse,单击“Window”菜单,选择下方的“Preferences”。 2.单击“Server”选项,选择下方的“Runtime Environments”。 3.点击“Add”添加Tomcat。 4.点击“Next”,选中自己安装的Tomcat路径。 5.点击“F...原创 2019-01-23 09:41:19 · 330 阅读 · 0 评论 -
关于设计模式MVC
首先我们需要知道什么是mvc设计模式1.mvc的介绍 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者模式), Composite(组合模式)和Strategy(策略模式)。所以说MVC模式又称复合模式。MVC(Model-View-Controlle...原创 2019-01-27 21:03:09 · 348 阅读 · 0 评论 -
关于JavaWeb三层架构(javaweb独有的结构)
关于javaweb三层架构已经学了一段时间,一直想做一个比较完整、比较完美的总结。但是左思右想,不知道如何下笔。进过今天的视频上老师所讲解的例子,对于三层架构的理解变得多了一些。对于初学者,我们也许会问什么是三层结构,为什么会用三层结构?1,什么是三层?2,为什么使用三层?3,三层与以往使用的两层相比有什么不同?它的优势在哪里?4,如何学好三层?如何应用三层?对于三层我左思...原创 2019-01-25 17:23:23 · 1416 阅读 · 1 评论 -
持久层的概念和mybatis的特点
持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏,在断电或者其他情况下,重新开启系统仍然可以读取这些数据。一般执行持久任务的都是数据库系统,持久层可以使用巨大的磁盘空间,也比较廉价,它的缺点就是比较慢。当然慢是针对内存而言的,在一般的系统中运行是不存在问题的,比如内部管理系统,但是在互联网的秒杀场景下,每秒都需要执行成千上万次数据操作,慢是不能承受的,极有可能导致岩机,在这样的场...原创 2019-01-20 14:27:25 · 691 阅读 · 0 评论 -
eclipse没有server选项解决方法
eclipse是是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。它使用频率十分高,然而当使用它配置weblogic的时候,经常会发现一个重要的问题就是打开eclipse之后没有了server选项,那么该如何解决这个问题呢? 下面将详细介绍eclipse中servers不见了的解决方法。 找到Help...原创 2019-01-08 23:11:04 · 373 阅读 · 1 评论 -
eclipse配置dynamic web project问题
最近由于需要,应该了解一下javaWeb,就随便挑了一个入门书,在安装了tomcat 9之后,发现自己选择创建dynamic web project的时候,我的eclipse neon中并没有这个选项,这让我感觉很不爽。网上找了一个答案,自己就当作笔记。 eclipse neon是其中eclipse中比较新的版本(2017/1/3发表自一嵩寒汐 ps:加个日期标志)。原来的版本有kelper,j...原创 2019-01-08 23:01:33 · 375 阅读 · 1 评论 -
使用JDBC连接数据库(一)
JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言。利用JDBC可以将JAVA代码连接到oracle、DB2、SQLServer、MYSQL等数据库,从而实现对数据库中的数据操作的目的。一、JDBC简介JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种...原创 2019-01-24 15:44:40 · 226 阅读 · 0 评论 -
如何配置Tomcat的环境变量
安装好tomcat之后, 按照这个操作,计算机→属性→高级系统设置→高级→环境变量,打开环境变量设置框。以本人的tomcat 8.0为例:安装下来如图: 那么我的tomcat的路径就是:D:\program document\apache-tomcat-8.0.47-windows-x64\apache-tomcat-8.0.47;所以下列的变量值就是我的tomcat路径,1,新建...原创 2019-01-24 12:55:01 · 221 阅读 · 2 评论