- 博客(117)
- 资源 (11)
- 问答 (2)
- 收藏
- 关注
原创 错误解决:Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/Dat
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:10
2022-01-20 10:21:48
2260
原创 剑指Offer—刷题记录
栈用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )两个栈,一个栈用来插入、另一个用来删除,删除之前都要先判断stack.isEmpty(),栈是否为空。class CQueue { Stack<Integer> stackA; Stack<Integer> stackB;
2022-01-08 17:55:09
874
原创 Swagger
认识Swagger:Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。作用:接口的文档在线自动生成。功能测试。Swagger使用的注解及其说明:@Api:用在类上,说明该类的作用。@ApiOperation:注解来给API增加方法说明。@ApiImplicitParams : 用在方法上包含一组参
2022-01-07 10:05:45
269
原创 @WebMvcConfigurer
什么是跨域?定义:浏览器从一个域名的网页取请求另一个域名下的东西。通俗点说,浏览器直接从A域访问B域中的资源是不被允许的,如果想要访问,就需要进行一步操作,这操作就叫“跨域”。例如,你从百度的页面,点击一个按钮,请求了新浪的一个接口,这就进行了跨域。不单单只有域名不同就是跨域,域名、端口、协议其一不同就是不同的域,请求资源需要跨域为什么要跨域?为什么需要跨域,而不直接访问其他域下的资源呢?这是浏览器的限制,专业点说叫浏览器同源策略限制。主要是为了安全考虑。现在的安全框架,一般请求的时候header中不
2022-01-07 10:00:50
233
原创 力扣刷题33
和为 K 的子数组给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数。和为k的连续子数组的要点就是使用hashmap记录前缀和出现的次数,每次判断hash中有无sum-k的值,如果有就count+=此值,没有的话count+=0,之后将sum的值添加到hashmap中,value=1class Solution { public int subarraySum(int[] nums, int k) { int sum=0; .
2021-12-27 09:48:44
142
原创 java.lang.IllegalArgumentException: Unsupported class file major version 58
java.lang.IllegalArgumentException: Unsupported class file major version 58jdk版本问题,应该是高版本编译的class文件不能被低版本的jdk进行加载。maven-compiler-plugin3.11.81.8
2021-12-26 13:02:49
765
原创 只出现过一次的数
Map的键值对统计个数import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;public class 只出现过一次的数 { public static void main(String[] args) { Map<Integer,Integer> map=new HashMap<>(); int[] arr
2021-12-24 21:32:41
511
原创 递归1到100的和
递归的思路,要有结束条件if要有return 递归函数public class 递归1到100的和 { public static void main(String[] args) { System.out.println(sum(100)); } public static int sum(int n){ if(n==1){ return 1; } return n+sum(n-1);
2021-12-24 21:22:33
617
原创 统计不同字符类型的个数
统计字符串中的不同字符类型的个数遍历+if判断public class 统计不同类型的字符个数 { public static void main(String[] args) { String s="1239safa 123 awsdf129 &*&(12zsxc<>}"; char[] chars = s.toCharArray(); int ecount=0; int scount=0;
2021-12-24 21:19:28
1300
原创 水 仙花数
分别取个、十、百的数计算是否为水仙花,if判断public class 水仙花数 { public static void main(String[] args) { int bai,shi,ge; int count = 0; for(int i=1;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100; int
2021-12-24 21:11:51
280
原创 判断100以内的素数
public class 素数 { public static void main(String[] args) { int count=0; for(int i=0;i<100;i++){ /*用标识符来判断是否可不可行*/ boolean flag = true; for(int j=2;j<i;j++){// 从2开始,到这个数结束,如果中间有数字
2021-12-24 21:00:43
396
原创 力扣刷题32
剑指 Offer II 009. 乘积小于 K 的子数组给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。滑动窗口首先外层循环判断右边界有没有走到头其次内层循环判断乘积是否大于等于k,如果满足,说明这个滑动窗口不满足题目条件,需要将左边界缩小,因为元素都是正整数,所以缩小边界,元素个数减少,那么乘积就会减小,直到乘积小于k,如果判断条件右边界小于左边界,那么以长度为贡献值赋予ansclass Solution { public int numSub
2021-12-24 10:27:45
277
原创 力扣刷题31
剑指 Offer II 008. 和大于等于 target 的最短子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。双指针,定义滑动窗口循环条件是左指针《右指针,右指针《=n计算sum,依次加右指针的元素,如果sum满足要求,把长度ans最小进行min判断因为此时已经找到一个最小长度,但
2021-12-24 09:23:25
294
原创 力扣刷题30
三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。先排序,确定号大小顺序利用hashset去重循环遍历数组,以当前元素i为基准利用双指针确定另外两个元素,l、r利用夹逼算法进行while循环,找到满足i+l+r的元素(同时维护左右指针向中间靠拢)同时判断是否<0(将左指针向前移动)、>0(将右指针向后移动)最后新建.
2021-12-23 23:42:19
213
原创 力扣刷题28
剑指 Offer II 016. 不含重复字符的最长子字符串给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。利用滑动窗口+hashset当set中包含重复项时,窗口的left++,缩小一直到没有重复项在窗口中,没有重复项的情况下,right++,窗口增大,一直到n结束,每次外层循环都维护长度最大值,取上一次的max和当前的right-left+1class Solution { public int lengthOfLongestSubstring(String
2021-12-23 14:26:03
156
原创 力扣刷题28
剑指 Offer 57. 和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可Map集合的containsKey函数二分查找法,每次只拿left和right的元素进行判断Map集合class Solution { public int[] twoSum(int[] nums, int target) { // Map集合 Map<Integer,Integer>
2021-12-23 12:49:44
194
原创 力扣刷题27
剑指 Offer 68 - II. 二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]最近的公共祖先:从root开始找,如果从左子树找到p、从右子树找到q说明root节点就是公共祖先先把特殊
2021-12-23 12:20:54
209
原创 力扣刷题26
剑指 Offer II 005. 单词长度的最大乘积给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。将任意两个字符串转为字符数组,然后新建一个字符数组26个空间大小,然后统计字符串的字符有没有出现过,第一个字符串中的字符如果出现过,那么对应的位置word-’a‘,就是对应的0,1,。。。的索引下表元素置为1,然后遍历第二个字符串,如果发现有
2021-12-22 23:46:47
151
原创 力扣刷题25
剑指 Offer II 006. 排序数组中两个数字之和给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0 <= answer[0] < answer[1] < numbers.length 。假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。利用Map集合,将数组的值
2021-12-22 23:15:10
79
原创 力扣刷题23
剑指 Offer 56 - II. 数组中数字出现的次数 II在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。还是利用Map的键值对class Solution { public int singleNumber(int[] nums) { Map<Integer,Integer> map=new HashMap<>(); for(int i=0;i<nums.l
2021-12-22 23:09:02
60
原创 力扣刷题24
剑指 Offer II 004. 只出现一次的数字给你一个整数数组 nums ,除某个元素仅出现 一次外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。利用HashMap的键值对,键存储数值,值存储出现的次数,然后依次将其转换为Map.Entry(Integer,Integer) map:map.entrySet()之后可以遍历key、value,然后将value为1的key输出class Solution { public int singleNumber(int[]
2021-12-22 21:36:15
301
原创 力扣刷题24
剑指 Offer 56 - I. 数组中数字出现的次数一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。利用集合,集合是不重复的元素,如果循环遍历的过程中,发现集合中有重复元素,则删除该集合中这个元素之后就for增强num,新建一个数组,然后把set依次放入该数组中class Solution { public int[] singleNumbers(int[] nums) {
2021-12-22 21:10:00
83
原创 力扣刷题23
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。集合,利用集合的不重复元素机制,集合不会插入重复元素如果有重复元素,add为false如果false,则返回遍历完之后,没有找到重复,就返回-1class Solution { public int findRepeatNumber(int
2021-12-22 20:56:19
194
原创 力扣刷题22
剑指 Offer 09. 用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )一个栈用插入一个栈用删除删除比较特殊:当删除栈空时,需要插入栈中的所有元素都要先弹入删除栈中,弹出后,再进行删除操作,如果此时删除栈不为为空,则将栈中元素再进行弹出class CQueue { Stack<Integer&
2021-12-22 20:51:25
64
原创 力扣刷题20
有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。栈,首字符串个数为奇数,则false字符串个数为偶数,把它转换成字符数组,然后一个个遍历,遇到左符号,就压入栈,否则看看栈是否为空,因为接下来,要弹出栈如果遇到右符号,则把它和左符号进行并比较处理,满足条件就弹出栈,否则返回fasle,最后看栈中是否含有元素,没有就返回trueclass Solut.
2021-12-22 19:38:54
2953
原创 力扣刷题19
剑指 Offer 10- II. 青蛙跳台阶问题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。最后一次即可跳1,也可以跳2,转移方程:fn=fn-1+fn-2边界条件:f0=1,f1=1,f2=2第一次:1、1、2、二次:1、2、3三次:2、3、5class Solution { public int numWays(int n)
2021-12-21 17:33:46
66
原创 力扣刷题18
剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。动态规划:转移方程:fn=fn-1+fn
2021-12-21 17:22:26
106
原创 力扣刷题17
两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。哈希表键存储数组的元素,值存储索引然后依次遍历在寻找过程中存储元素可以提高效率如果target-nums[i]没出现在map中,则直接put进去,如果在map中,返回get对应的值,以及当前的索引class Solution {.
2021-12-21 11:34:19
67
原创 力扣刷题16
剑指 Offer II 003. 前 n 个数字二进制中 1 的个数给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。循环遍历n的前n个数,偶数去掉最低位,奇数是前一个偶数+1,就是加上最低位的1因为偶数的二进制是该数的一半,因此是右移一位class Solution { public int[] countBits(int n) { int[] bit=new int[n+1]; for(int i=0;i
2021-12-21 10:26:06
57
原创 力扣刷题15
剑指 Offer II 002. 二进制加法给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。定义StringBuilder存放最终结果定义count作为进位数for循环遍历:初始值为两个字符串的最后一个字符,假设“10” “01”,total+=i>=0?a.charAt(i)-‘0’:0;total+=j>=0?b.charAt(j)-‘0’:0;这两行代表对应数字相加count代表进位数s
2021-12-21 10:04:29
75
原创 力扣刷题14
剑指 Offer II 001. 整数除法给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。将正负号标志位,另外运算,class Solution { public int divide(int a, int b) { //如果被除数是 if(a==Integer.MIN_VALUE&&b==-1){ return Integer.MAX_VALUE;
2021-12-21 09:26:04
57
原创 力扣刷题13
剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top();
2021-12-20 23:52:26
429
原创 力扣刷题13
剑指 Offer 64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。对于 A && B 这个表达式,如果 A 表达式返回 false,则不会执行B,如果||返回true,则不会执行B上述的表达式转换递归为:n=n+sum(n-1);class Solution { public int sumNums(int n) { boolean flag=n&
2021-12-19 23:20:23
57
原创 力扣刷题12
剑指 Offer 26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。递归:辅助函数;先判断其中一个树是否为空,为空直接false否则进入递归,1、两个·树直接进入辅助函数递归,判断两个树直接相同2、判断左右子树是否与另一个树相同,进入rec辅助递归判断/** * Definition for a binary tree node. * public class TreeNode {
2021-12-19 23:08:54
182
原创 力扣刷题11
根据二叉树镜像的定义,考虑递归遍历(dfs)二叉树,交换每个节点的左 / 右子节点,即可生成二叉树的镜像。递归解析:终止条件: 当节点 rootroot 为空时(即越过叶节点),则返回 nullnull ;递推工作:初始化节点 tmptmp ,用于暂存 rootroot 的左子节点;开启递归 右子节点 mirrorTree(root.right)mirrorTree(root.right) ,并将返回值作为 rootroot 的 左子节点 。开启递归 左子节点 mirrorTree(tmp)mi
2021-12-19 22:50:19
198
原创 力扣刷题10
剑指 Offer 28. 对称的二叉树请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的对称的情况:左右子树同时为空则为对称左右子树有一个为空则为不对称左右子树同时存在 但值不同 则为不对称先判断树是否为空,为空直接true上述为对称的三种,递归的方式,首先需要递归结束条件,就是left和right为null时left和right的val不相等时跳出递归/** * Definition for a binary tree node. * p
2021-12-19 22:39:24
3178
原创 力扣刷题9
剑指 Offer 55 - I. 二叉树的深度输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。初始化一个链表队列,然后判定如果root不为null,然后将其添加到queue中while循环判断如果queue不为空就让深度加1;for循环遍历每层的节点,可以不用创建一个临时节点,可以直接poll然后if判断如果当前节点的左右字节点不为空,则加入queue用于下一次循环最后while循环结束返回深度/** * De
2021-12-19 11:28:43
70
原创 力扣刷题8
剑指 Offer 32 - II. 从上到下打印二叉树 II从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。先定义链表用于存放节点,动态数组用于存放最外层判断root是否为空,不为空就将添加到queue然后循环当queue不为空定义一个内层的动态数组,然后for循环,循环的大小是这一层的节点数量然后循环体内定义一个临时节点用于取,然后将其值放入到临时数组中,接着判断temp的左右子节点是否为空,不为空就将其存放入queue,然后for循环结束,将内层动态数组存入到外
2021-12-19 11:04:38
62
原创 力扣刷题7
剑指 Offer 32 - III. 从上到下打印二叉树 III请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。先判断root是否为空不为空将其存放在queue先定义一个动态数组用于存放节点数值,一个队列,用链表实现,用于存放节点while循环判定queue是否为空,临时节点用于存放queue中poll元素然后将temp节点的值存放在动态数组中,接下来进行判断temp节点的左右子节点是否为空,不为
2021-12-19 10:49:31
192
原创 力扣刷题6
剑指 Offer 32 - III. 从上到下打印二叉树 III请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推idea:层序遍历,遍历结果添加到双端队列中,先定义内层的数据结构,使用链表或者队列都可以,最外层使用ArrayList,先判断root是否为空,不为空,添加到链表中然后进行循环判断,从队列头部删除元素,直到遇到null停止,里面定一个数组,用于存放每一层的节点值,以每个节点的左右子
2021-12-19 10:18:15
63
Logistic回归.wps
2020-08-16
决策树原理,设计过程,实例.docx
2020-08-05
各位有人知道这个是什么问题吗?
2021-12-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人