- 博客(221)
- 收藏
- 关注
转载 springboot启动报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary
解决办法:springboot启动报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary_刘德华一不小心就打代码的博客-CSDN博客
2021-07-30 11:51:53 1914
原创 整合springsecurity时redis报错: Could not read JSON: Unrecognized field “enabled“
springboot整合springsecurity时报错:通过查看报错信息发现都是使用redis的地方报错。项目中是使用redis作为缓存来存放User信息,不整合springsecurity时一切正常,但整合后就除了问题,在网上查了几篇博客发现是在redis序列化存储User对象时除了问题。重点错误信息:Could not read JSON: Unrecognized field "enabled" (class com.xyc.community.entity.User), no.
2021-07-30 11:22:15 7233 5
原创 重定向与转发
1、重定向浏览器向服务器发起请求,比如登录(登录后想要得到首页的信息)、删除(删除后想要得到删除 后的查询结果)之类的功能,需要Aservlet进行处理,处理完之后,需要访问再Bservlet,此时由于A和B是两个完全不相干的功能,如果直接在A里调用B 进行处理,则会造成不必要的耦合。如:(1)删除浏览器在进行删除请求后希望查询删除后的结果页面,这时A返回一个302码,表示需要重定向到新的页面。由浏览器发起新的请求来查询得到删除后的结果页面。由于是两次请求,所以不能在request和resp
2021-07-27 16:36:31 247
原创 Springboot2.5.2整合Elasticsearch7.6.2(spring-data-elasticsearch)实现高亮查询
springboot整合spring-data-elasticsearch,使用的Elasticsearch版本是7.6.2。首先导入的依赖版本比较重要,一定要能搭配es的版本。一些版本废弃了之前的类啊方法啊所以如果版本不对的话网上的博客视频教程之类的可能都不合适。1、导入依赖<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-elasticsearch --><.
2021-07-26 17:19:57 1232
原创 堆、栈和堆栈
前言 一直不了解栈和堆栈的区别,网上搜索一般都是说栈和堆栈是同一个东西。直到前段时间在学习计算机组成原理时,终于了解了堆栈是个什么东西。一、堆堆是一种我们都很熟悉的数据结构,它可以被看作是完全二叉树。并且满足,对于任意节点如果它有左、右子树,该节点的值必定大于(大顶堆是大于,小顶堆是小于)子树上的节点的值。堆排序就是借助了堆这一数据结构。二、栈栈也是一种常见的数据结构,它符合“先进后出”的原则。可以使用顺序和链式两种实现方式来实现。三、堆栈与堆和栈不...
2021-04-11 14:23:13 4641 5
原创 剑指offer——扑克牌顺子
题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。解题思路:0的个数>=不连续的个数且不含对子即是顺子从书中的意思来看,这个顺子不是真正的顺子,扑克牌中Q、K、A是顺子,但在这里Q、K、A分别是12、13、1不是顺子,忽略了这第一点题目就简单了。c...
2020-05-11 10:36:30 109
原创 LeetCode69.x的平方根
实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解题思路:二分class Solu...
2020-02-11 21:22:29 162
原创 LeetCode27.移除元素
给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...
2020-02-11 21:12:22 138
原创 LeetCode26.删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:...
2020-02-07 23:10:30 137
原创 LeetCode1.两数之和
题目描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...
2020-02-06 22:56:25 128
原创 剑指offer——把字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+2147483647 1a33输出2147483647 0解题思路:主要...
2019-11-13 21:39:25 116
原创 剑指offer——构建乘积数组**
题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。解题思路:B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]可分为C[i] + D[i]C[i] =A[0]*A[1]*......
2019-11-13 20:03:12 112
转载 一文搞懂 RSA 算法
如果没有 RSA 算法,现在的网络世界毫无安全可言,也不可能有现在的网上交易。上一篇文章 ssh 协议为什么安全 中的 ssh 协议也是基于 RSA 加密算法才能确保通讯是加密的,可靠的。1976年以前,所有的加密方法都使用对称加密算法:加密和解密使用同一套规则。例如:甲使用密钥 A 加密,将密文传递给乙,乙仍使用密钥 A 解密。如果密钥 A 在甲传递给乙的过程中泄露,或者根据已知的几次密文和...
2019-11-12 23:14:09 197
原创 剑指offer——不用加减乘除做加法**
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解题思路:首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是相加的值变成上述两步的得到的结果直到他们的进位是0,上述两步的结果是2和1...
2019-11-12 21:32:51 110
原创 剑指offer——求1+2+3+…+n
题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解题思路:使用递归计算,但由于不能使用if所以终止条件利用&&的特点来实现。res&&(res+=Sum_Solution(n-1)),当res等于0时,&&后面的内容就不需要再判...
2019-11-12 20:37:32 116
原创 剑指offer——股票的最大利润*
题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5,7, 12, 16, 14}。如果我们能在价格为5的时候买入并在价格为16时卖出,则能收获最大的利润11。解题思路:每次求以第i个价格出售的最大利润(只能当前价格减去此前的最低价),维护一个最大利润,同时维护一个最低价(...
2019-11-12 20:21:22 124
原创 剑指offer——圆圈中最后剩下的数字(孩子们的游戏)
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....
2019-11-12 19:31:26 129
原创 剑指offer——扑克牌顺子
题目描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。解题思路:0的个数>=不连续的个数且不含对子即是顺子从书中的意思来看,这个顺子不是真正的顺子,扑克牌中Q、K、A是顺子,但在这里Q、K、A分别是12、13、1不是顺子,忽略了这第一点题目就简单了。c...
2019-11-12 19:06:31 126
原创 剑指offer——翻转字符串*
题目一:翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。解题思路:先将整个字符串翻转,在分别把每个单词翻转。class Solution {public: void Reverse(string&...
2019-11-12 18:50:44 140
原创 剑指offer——滑动窗口的最大值**
题目描述:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...
2019-11-12 18:20:26 104
原创 剑指offer——和为S的数字*
题目一:和为S的两个数字输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。解题思路:设置两个指针分别指向数组的首位和末位,如果两个指针指向的数字和大于sum尾指针向前移动一位,若小于sum首指针向后移动一位,若与sum相等表示找到了,保存退出...
2019-11-12 11:49:53 100
原创 剑指offer——空格替换
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:统计空格个数和原始字符串的长度,计算替换后的长度,然后从后往前复制,这样可以一次性将所有字符移动到最终位置,能减少字符的重复移动。如果从前往后复制,空格越多,越往后面的字符重复移动的次数越多。clas...
2019-11-12 11:22:11 119
原创 剑指offer——第一个只出现一次的字符
题目一:字符串中第一个只出现一次的字符在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).解题思路:直接打表class Solution {public: int FirstNotRepeatingChar(string str) { i...
2019-11-12 08:48:29 93
原创 剑指offer——重建二叉树**
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:前序遍历序列的第一个值为根节点,根据这个根节点在中序遍历序列中找到根节点,该节点之前是左子树,之后是右子树,以此递归建立左右子树...
2019-11-12 00:38:03 111
原创 剑指offer——数组中数字出现的次数
题目一:数组中只出现一次的两个数一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。解题思路:方法一:哈希表这个比较容易想到,但是需要额外的空间class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *...
2019-11-11 19:18:53 106
原创 剑指offer——平衡二叉树
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。解题思路:如果子树是平衡二叉树,则返回子树的高度;如果发现子树不是平衡二叉树,则直接停止遍历,class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { return IsBalanced(pRoot)!=-1; ...
2019-11-11 18:51:33 82
原创 剑指offer——二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路:二叉树的深度等于它的左右子树中深度更大的那个值加一/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int ...
2019-11-11 18:36:57 87
原创 剑指offer——二叉搜索树的第K个节点
题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。解题思路:根据二叉搜索树的特性,中序遍历的序列就是从小到大的排序。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode...
2019-11-11 18:32:37 91
原创 剑指offer——在排序数组中查找数字
题目一:数字在排序数组中出现的次数统计一个数字在排序数组中出现的次数。解题思路:方法一:直接遍历一遍,O(n)的时间复杂度。方法二:二分查找,时间复杂度度更优分别二分查找第一个k的位置和最后一个k的位置class Solution {public: int GetNumberOfK(vector<int> data ,int ...
2019-11-11 18:13:10 137
原创 剑指offer——两个链表的第一个公共节点
题目描述输入两个链表,找出它们的第一个公共结点。代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNod...
2019-11-11 17:35:17 83
原创 剑指offer——丑数*
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解题思路:从第一个丑数开始,所有丑数都是由前面的某一个丑数乘以2或者3或者5,要做的是确定他们的大小顺序来得到第n个丑数。找到一个丑数MinUgly后,下一个丑数是之前所有丑数2倍、...
2019-11-11 11:40:18 109
原创 剑指offer——最长不含重复字符的子字符串
题目描述:找出一个字符序列中一个最长的包含不重复字符的子字符串,比如在字符串“arabcacfr”中,最长的不含重复字符的子字符串是“acfr”,长度为4。解题思路:用f(i)表示以第i个字符结尾不包含重复字符的子字符串的最长长度,从左向右扫描1、若第i个字符在之前没出现过,则 f(i) = f(i-1) + 1;2、若第i个字符在之前出现过,计算第i个字符距离上次出现之...
2019-11-07 22:04:23 137
原创 剑指offer——礼物的最大值
问题描述:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向左或者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?解题思路:动态规划。对于每个格子(第0行、第0列除外)它可能是从正上方的格子过来能得到最大值,也可能从正左方的格子过来取得最大值,...
2019-11-07 20:31:57 186
原创 剑指offer——数据流中的中位数*
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。解题思路:用一个最大堆和一个最小堆来保存数据左边是最大堆,右边是最小堆,这样只要保...
2019-11-07 20:03:38 98
原创 剑指offer——把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路:定义一种排序方法,如:数字M、N,若组成数字MN>NM,则M>N,否则M<N。同时考虑到数字相加后可能超过int范围,所以用字符串来处理。直接使用string来进...
2019-11-07 19:56:22 98
原创 剑指offer——连续子数组的最大和*
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序...
2019-11-07 19:37:07 100
原创 pat.1047 编程团体赛
1047编程团体赛(20分)编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。现给定所有队员的比赛成绩,请你编写程序找出冠军队。输入格式:输入第一行给出一个正整数N(≤104),即所有参赛队员总数。随后N行,每行给出一位队员的成绩,格式为:队伍编号-队员编号 成绩,其中队伍编号为 1 到 1000 的...
2019-11-04 10:15:17 223
原创 剑指offer——最小的K个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解题思路:1.利用快排的划分算法partition算法将数组第一个数字作为主元,进行划分。比主元小的数放置在主元左边,比主元大的数放置的主元右边,最后返回主元的位置。不过主元左右的数字并不是有序排列的。对数组进行partition算法,直...
2019-09-26 15:16:12 90
原创 剑指offer——数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路:可以这样理解,把数字看成士兵,相等的数字表示同一阵营。不同阵营的士兵去占领一个地方。如果这个没人就占领,有人的话是同一阵营加入防守。不是同一阵...
2019-09-26 15:04:38 88
原创 剑指offer——字符串的排列*
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解题思路:这个方法得到的不是字典序,最后又排序。虽然过了但解法很不优。参考下面博客优化。字符串全排列(可去重)字符串字典序全排列class Solution {public: ...
2019-09-25 20:10:47 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人