- 博客(52)
- 收藏
- 关注
原创 两句话中不常见单词884
题目描述:句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。题目思路:两个句子中只能出现一次单词则是结果,那么可以用map统计,key为单词,value为次数,遍历map找到次数为1的单词就是答案。代码:package simple;import java.util.*
2022-05-11 13:01:09
186
原创 EurekaServer启动报错解决办法
启动EurekaServer服务报错如下:rg.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.person.eurekaserver7001.EurekaServer7001]; nested exception is java.lang.ArrayStoreException: sun.reflect.
2022-05-04 22:03:11
1388
2
原创 反转字符串中的单词 III 557
题目描述:定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。提示:1 <= s.length <= 5 * 104s 包含可打印的 ASCII 字符。s 不包含任何开头或结尾空格。s 里 至少 有一个词。s 中的所有单词都用一个空格隔开。题目思路:开辟一个stringBuffer 用来拼接最后的结果。当遍历到空格时便知道是一个单词的末尾。此时逆序添加这个单词的字母到Buffer中。 public static String
2022-04-16 21:05:40
426
原创 翻转字符串344
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。题目思路:一个头指针,一个尾指针,两个指针不断移动并交换。代码实现: public void reverseString(char[] s) { int left = 0, right = s.length -1; while (left <= right)
2022-04-10 10:41:03
200
原创 两数之和‖ 167
题目描述:给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一
2022-04-10 10:02:22
260
原创 移动零283
题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。思路一: 双指针定义一个left和right都指向数组开头,不断右移right , 当遇见非零数则和left位置交换,同时left前进 // 思路一 : 双指针 public void moveZeroes(int[] nums) { int n = nums.length; int left
2022-04-05 21:21:13
148
原创 轮转数组189
轮转数组题目描述:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]思路一:使用额外的数组新建一个数组,将原数组i 位置的值赋值到新数组(i+k)%n位置,最后拷贝到原数组就行 public static void rotate(int[] nums, int k) { int n = nums.length; int[] new
2022-04-04 13:04:56
321
原创 有序数组的平方977
有序数组的平方题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。思路1:直接给每个元素平方,然后排序. public int[] sortedSquares(int[] nums) { // 将每个数平方 for(int i = 0; i< nums.length;i++){ nums[i] = nums[i]*nums[i]; }
2022-04-02 20:36:35
344
原创 二分查找704(简单)
二分查找(简单)题目描述给定一个n个元素有序的(升序)整型数组nums 和一个目标值target,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。代码实现 public int search(int[] nums, int target) { int low = 0, high = nums.length - 1; while (low <= high) { int mid = (high - low) / 2 + low;
2022-03-30 11:03:39
92
原创 小明种苹果Java解法CSP认证
题目描述:http://118.190.20.162/view.page?gpid=T94import java.util.Arrays;import java.util.Scanner;public class Main5 { public static <T> void main(String[] args) { Scanner scanner = new Scanner(System.in); // 苹果树的棵树 int
2021-04-13 23:36:19
141
1
原创 报数Java解法---20191201
题目思路甲的报数为 1+4k,乙的报数为 2+4k丙的报数为 3+4k丁的报数为 4+4k其中,k为多少轮的意思,从0开始PS:双重检查机制注意下代码解法import java.util.Scanner;public class Main4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 报了多少数, 不计入跳
2021-04-10 18:57:18
213
原创 线性分类器Java解法---CSP认证超详解
题目描述题目思路同类型的坐标点应该在同一边,不同类型的坐标点应该在另外一边。判断在一条直线上边还是下边的方法只是代入x and y.题目解答import java.util.Scanner;public class Main { public static void main(String[] args) { // 接收两个参数 Scanner scanner = new Scanner(System.in); int n =
2021-04-06 19:06:30
307
原创 检测点查询Java解法-CSP认证最易懂解法
题目连接http://118.190.20.162/view.page?gpid=T113思路了解一下排序器就行解法public class jiancedian { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int x = scanner.nextInt();
2021-04-03 22:47:14
226
原创 剑指offer- 二叉树的深度
二叉树的深度题目描述:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。题目思路:树的遍历方式分为两种:深度优先遍历(DFS),广度优先遍历(BFS)方法一:深度优先,后序遍历树的深度等于左子树深度和右子树深度最大值加1class Solution1 { public int maxDepth(TreeNode root) { if(root == null){
2021-03-16 22:53:37
81
原创 JVM学习笔记基础篇
JVM学习笔记之基础篇想来看过JVM之类的视频,也看过JVM之类的书籍。如何才能消化学到的知识并转换为自己的能力呢,想必做笔记,思维导图不失为一个好办法。1. 讲在前面之JVM历史以及版本 JVM(Java virtual machine) Java 虚拟机运行在操作系统之上,不与硬件设备直接交互。讲得简单一点来讲,如果说我这个程序员要去租房子,那么C语言好比是房东直租,直接对接房东,没有中间商赚差价。而Java虚拟机更类似于链家中间商,你去中介那里找房子,中介对接房东。再来说说Java的跨平
2021-01-31 14:54:50
165
1
原创 对称的二叉树
题目描述:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。题解: public boolean isSymmetric(TreeNode root){ // 如果根节点空 返回true 否则递归判断 左右节点 return root == null ? true : recur(root.left, root.right); } private boolean recur(TreeNode left,
2021-01-07 15:10:03
63
原创 五分钟学习Mybatis逆向工程
导入依赖<dependencies> <!-- 引入log4j日志依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version&g
2020-12-03 12:28:39
114
原创 SpringBoot之自动启动原理
前言我们都知道,使用SpringBoot开发项目非常简便,在以往的SSM框架中,往往会因为一大堆的密密麻麻的xml配置文件而糟心不已。自从SpringBoot的出现,改变了这个现状。我们往往只需要去关注业务实现而不需要去过多分心与固定的且繁琐的配置。而SpringBoot自动装配便是其中一大功臣。接下来,直接进入正题吧。来了解一下,SpringBoot的自动装配是如何实现的~从启动类入手这是springBoot启动类,启动项目从这里运行。那么我们看看这个注解包含了什么吧~可以看到在Spring
2020-11-27 19:22:59
394
原创 Java学算法之数组中的重复数字
剑指offer003—数组中的重复数字题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。解法:一、Map把数组遍历到map当发现已经包含数值时退出。public int findRepeatNumber(int[] nums) { /** 将数组遍历到map,key为数值,v为次数。 当包含重复ke
2020-07-25 12:08:45
115
原创 一个例子就学会Lambda表达式
Lambda表达式都2020年了,Java程序员还不会lambda表达式?(赶快学起来)lambda表达式是JDK8的新特性,可以取代大部分的匿名内部类,写出更优雅的代码。lambda基础语法/** * @author sean yang */@FunctionalInterfacepublic interface NoReturnMultiParam { /** * 多参数无返回值 * @param a * @param b */
2020-06-27 15:05:23
147
原创 RocketMQ如何实现分布式事务
RocketMQ如何实现分布式事务A服务也就是发送方发送half message 到 broker服务端当A服务指导半消息发送成功后,开始执行本地事务执行本地事务会有三种情况(1,执行成功 2,执行失败 3,网络等原因没有响应)如果执行成功,返回commit如果执行失败,返回rollback如果没有收到响应,那么回查事务状态根据事务的状态执行操作如果commit,那么提交到订阅方如果rollback,那么不投递消息,三天后删除如果没有收到确认,那么回查事务状态Q :
2020-06-26 21:48:40
959
2
原创 RocketMQ如何实现分布式事务
RocketMQ如何实现分布式事务A服务也就是发送方发送half message 到 broker服务端当A服务指导半消息发送成功后,开始执行本地事务执行本地事务会有三种情况(1,执行成功 2,执行失败 3,网络等原因没有响应)如果执行成功,返回commit如果执行失败,返回rollback如果没有收到响应,那么回查事务状态根据事务的状态执行操作如果commit,那么提交到订阅方如果rollback,那么不投递消息,三天后删除如果没有收到确认,那么回查事务状态Q :
2020-06-26 20:26:31
221
原创 高并发下微服务如何限流问题
基本概念一、高并发的相关概念:PV:综合浏览量,即页面浏览量和点击量,如果一个系统的日PV在千万级以上,那么我们称这个系统为高并发系统。QPS:每秒响应的请求数。响应时间:从请求发出到收到响应的时间。吞吐量:单位时间里处理的请求数量。如何实现一个系统的高并发或者说提高一个系统的并发量呢?扩容 扩容分为水平扩容和垂直扩容。水平扩容就是增加机器数量,怼机器。垂直扩容就是增加单机处理能力,怼硬件。提高接口并发能力缓存动静分离动静分离是说,动态页面和静态页面分开不同的软件架构设计方法
2020-06-25 00:38:03
286
原创 关于RocketMQ报错信息:MQClientException:no route info of this topic的解决。
做秒杀项目里使用RocketMQ分布式消息队列去创建秒杀订单的时候,发现后台报如下错误:阅读报错信息,可以知道,因为找不到promo_order的 topic所以报错了。解决办法:在rocetmq的bin目录下手动创建promo_order的topic。代码为(windows环境):start mqadmin.cmd updateTopic -n 127.0.0.1:9876 -b 127.0.0.1:10911 -t topicname(linux环境)sh ./mqadmin updat
2020-06-23 23:38:37
2085
原创 二叉树的最近公共祖先
二叉树的最近公共祖先题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题目思路:递归解析:终止条件:当越过叶节点,返回null当root等于p,q,返回root递推工作:递归左子节点,返回值为left递归右子节点,返回值为right返回值:当left和righ
2020-05-17 11:02:52
225
原创 二叉搜索树的最近公共祖先
二叉搜索树的最近公共祖先题目描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题目思路:若root是p,q的最近公共祖先,则只能是以下情况:p和q在root 的子树中,且为root的异侧。(即分别在左右子树中)。p=root,且q在root的左子树或者右子树中。q=root,且p在ro
2020-05-16 22:04:48
188
原创 和为S的连续正数序列
和为S的连续正数序列题目描述:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。题目思路:定义一个左边界,一个右边界,左闭右开,形成一个滑动窗口。当窗口内的数值和小于目标值的时候,右边界向前滑动一位,左边界不动,扩大此窗口和。当窗口内的数值小于目标值的时候,左边界向前滑动一位,右边界不动,缩小此窗口和。当等于目标值的时候,记录此窗口内的数值。然后左边界向前滑动一位,继续判断。当左
2020-05-14 23:16:15
84
原创 正则表达式
正则表达式概念正则表达式,又称规则表达式。代码中常写为regex,regexp,RE。作用:正则表通常被用来判断、检索,替换那些符合某个模式的文本。正则基本规则次数限定符字符描述*匹配前面的子表达式零次或者多次,例如,zo*能匹配"z"以及"zoo", *等价于{0,}+匹配前面的表达式一次或者多次,例如’zo+‘能匹配’zo’以及‘zoo’,但不能匹...
2020-05-07 08:50:19
122
原创 层序从上到下打印二叉树
层序从上到下打印二叉树题目描述:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。题目思路:如果根节点为空,那么返回一个空列表[]如果不为空,把根节点加入到队列中队列为空的时候跳出循环,否则进行下面的操作创建一个列表遍历队列里的元素,将其加入列表判断当前加入元素有无左右节点,如果有就加入题目代码:class solution{ ...
2020-04-27 14:15:10
98
原创 剑指offer35---复杂链表的复制
复杂链表的复制题目描述:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null.题目思路:用一个Map保存节点和这个节点的复制。遍历链表,按照顺讯将复制节点串联。题目代码:public class offer35 { class Nod...
2020-04-26 12:25:36
106
原创 剑指offer---用两个栈实现队列
用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题目代码:class solution{ Stack<Integer> stack1; Stack<In...
2020-04-25 22:40:45
123
原创 剑指offer15---二进制中1的个数
#二进制中1的个数题目描述:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。题目思路:当1&0,0&1,0&0都等于0只有1&1才为1所以我们可以循环判断输入整数与1相与的结果,如果结果为1,那么该数字的最右边一位肯定是1,否则为0....
2020-04-23 21:53:58
84
原创 二叉树最大深度
二叉树最大深度思路:题解://递归public class Offer55 { public int maxDepth(TreeNode root) { if(root == null) return 0; int leftDep = maxDepth(root.left); int rightDep = maxDepth(root...
2020-04-21 20:13:28
129
原创 java核心技术读书笔记(持续更新)
Java核心技术读书笔记一、Java程序基本设计结构integer的范围不与机器是32位还是64位有关。特殊转义字符:转义序列名称\b退格\t制表\n换行\r回车\\反斜杠要注意注释中的转义字符,有可能会报错。强烈建议不使用char,最好将字符串作为抽象数据类型处理。有些字符占两个char。会导致程序报错。...
2020-04-21 10:29:58
296
原创 剑指offer25---合并链表
合并链表题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:遍历判断:创建一个伪头结点node,创建一个cur指向头结点。循环遍历结束条件为两个链表其中有一个为空。遍历l1,l2,将其数值小的节点接到c...
2020-04-20 09:20:41
83
原创 剑指offer---数组中数字出现的次数
数组中数字出现的次数题目:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。思路:HashMap键值对<存放的数字,该数字出现的次数>题解:class Solution { public int singleNumber(int[] nums) { //hashmap K 存数字 V存次数...
2020-04-19 13:37:24
140
原创 剑指offer---左旋字符串
左旋字符串题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umg...
2020-04-19 13:36:42
334
原创 剑指offer---反转链表
反转链表题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:一、双指针迭代设置一个pre节点开始指向null,cur节点指向当前节点,反转整个链表就是用当前节点cur指向前驱节点pre。...
2020-04-19 10:34:29
91
原创 DBUntils结果处理
package com.cskaoyan.JDBCDemo;import com.alibaba.druid.pool.DruidDataSourceFactory;import org.apache.commons.dbutils.DbUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.common...
2020-04-02 23:46:44
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人