自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徐泗空的博客

欲明明德者,致知在格物

  • 博客(464)
  • 收藏
  • 关注

原创 SpringBoot学习之shardingsphere实现分库分表(基于Mybatis-Plus)(四十九)

ShardingSphere是一款起源于当当网内部的应用框架。2015年在当当网内部诞生,最初就叫ShardingJDBC。2016年的时候,由其中一个主要的开发人员张亮,带入到京东数科,组件团队继续开发。在国内历经了当当网、电信翼支付、京东数科等多家大型互联网企业的考验,在2017年开始开源。并逐渐由原本只关注于关系型数据库增强工具的ShardingJDBC升级成为一整套以数据分片为基础的数据生态圈,更名为ShardingSphere。到2020年4月,已经成为了Apache软件基金会的顶级项目。

2025-02-06 14:00:12 171

原创 IDEA中Resolving Maven dependencies卡着不动解决方案

通常位于Maven安装目录下的conf文件夹中,或者在用户目录下的.m2文件夹中(如果用户自定义了settings.xml的位置)。Maven配置阿里云仓库主要通过修改Maven的settings.xml文件来实现‌。打开settings.xml文件,在<mirrors>标签内添加阿里云Maven仓库的镜像配置。通过以上步骤,你可以成功配置Maven以使用阿里云的仓库,从而加快依赖的下载速度。完成编辑后,保存对settings.xml文件的更改,并关闭文件。标签中添加阿里云的仓库地址。

2025-02-06 11:46:11 1245

原创 【番外篇】排列组合实现算法2(Java版)

排列组合算法有一定的难度,并不能用一般的多重嵌套循环解决,没有提前做针对性的学习和研究,考试时候肯定是事倍功半,所以今天我们专门出一篇文章来讲一下这个问题。假设袋子里有编号为1,2,...,m这m个球。现在每次从袋子中取一个球几下编号,放回袋中再取,取n次作为一组,枚举所有可能的情况。假设袋子里有编号为1,2,...,m这m个球。先后从袋子中取出n个球,依次记录编号,枚举所有可能的情况。从m个球里(编号为1,2,3...,m)一次取n个球,其中m>n,记录取出球的编号,枚举所有的可能性。

2025-01-22 16:24:58 433

原创 HJ40 统计字符(Java版)

您可以参阅下表获得其详细信息。在一行上输入一个长度为 1≦length(s)≦10001≦length(s)≦1000 的字符串。对于给定的由可见字符和空格组成的字符串,统计其中英文字母、空格、数字和其它字符的个数。简单 通过率:49.48% 时间限制:1秒 空间限制:32M。第一行输出一个整数,代表字符串中英文字母的个数。第四行输出一个整数,代表字符串中其它字符的个数。第二行输出一个整数,代表字符串中空格的个数。第三行输出一个整数,代表字符串中数字的个数。

2025-01-22 14:52:26 279

原创 HJ108 求最小公倍数(Java版本)

对于给定的两个正整数 a,b,它们的最小公倍数 lcm⁡(a,b) 是指能同时被 a 和 b 整除的最小正整数。简单 通过率:37.19% 时间限制:1秒 空间限制:32M。在一行上输入两个整数 a,b(1≦a,b≦105)。求解 lcm⁡(a,b)lcm(a,b)。输出一个整数,表示 lcm⁡(a,b)。

2025-01-21 18:05:44 331

原创 HJ106 字符逆序(Java版)

在一行上输入一个长度为 1≦len(s)≦10^4、由小写字母和空格混合构成的字符串 ss。简单 通过率:43.44% 时间限制:1秒 空间限制:32M。对于给定的由小写字母和空格混合构成的字符串 ss,将其翻转后输出。输出一个字符串,表示将输入字符串 s 翻转后的结果。保证给定的字符串 s 的首尾不为空格。

2025-01-21 16:57:29 197

原创 HJ107 求解立方根(Java版)

中等 通过率:26.26% 时间限制:1秒 空间限制:32M。待求解参数,为double类型(一个实数)计算一个浮点数的立方根,不使用库函数。数据范围:∣val∣≤20。

2025-01-21 16:35:35 323

原创 【番外篇】排列组合实现算法1(Java版)

在牛客网的很多算法试题中,很多试题底层都是基于排列组合算法实现的,比如最优解、最大值等常见问题。排列组合算法有一定的难度,并不能用一般的嵌套循环解决,没有提前做针对性的学习和研究,考试时候肯定是事倍功半,所以今天我们专门出一篇文章来讲一下这个问题。组合(Combination)是指从一组元素中选取指定数量的元素,不考虑顺序。排列(Permutation)是指将一组元素进行重新排序。

2025-01-21 15:35:25 246

原创 HJ32 密码截取(Java版)

比如进行下列变化 "ABBA"→"12ABBA" 、"ABA"→"ABAKK","123321"→"51233214"。因为截获的串太长了,而且存在多种可能的情况( "abaaab" 可看作是 "aba"或 "baaab" 的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些 "ABBA" 、"ABA" 、"A" 、"123321"。

2025-01-21 09:27:04 263

原创 HJ48 从单向链表中删除指定值的节点(Java版)

∙ ∙在2后插入7,得到链表[2,7,3,1,5,4];随后,删除值为22的节点,得到链表[7,3,1,5,4]。∙ ∙在4后插入1,得到链表[2,5,3,4,1];∙ ∙在5后插入4,得到链表[2,3,1,5,4];∙ ∙在2后插入5,得到链表[2,5,3,4];随后,删除值为3的节点,得到链表[2,5,4,1]。∙ ∙在1后插入5,得到链表[2,3,1,5];∙ ∙在3后插入4,得到链表[2,3,4];

2025-01-20 11:09:49 972

原创 HJ38 求小球落地5次后所经历的路程和第5次反弹的高度(Java版)

具体来说,设您的答案为aa,标准答案为bb,当且仅当∣a−b∣max⁡(1,∣b∣)≦10−6max(1,∣b∣)∣a−b∣​≦10−6时,您的答案将被接受。第一次反弹高度为0.50.5米,第二次反弹高度为0.250.25米,第三次反弹高度为0.1250.125米,第四次反弹高度为0.06250.0625米,第五次反弹高度为0.031250.03125米。假设有一个小球从hh米高度自由落下,我们不考虑真实的物理模型,而是简洁的假定,该小球每次落地后会反弹回原高度的一半;

2025-01-18 02:07:57 338

原创 HJ37 统计每个月兔子的总数(Java版)

有一种兔子,从出生后第三个月起,每个月都会生一只兔子,生出来的兔子同理。第五个月时,r0r0​再生一只兔子,与此同时r1r1​也开始生兔子,此时兔子总数为55。第三个月时,r0r0​开始生兔子(记生出来的兔子为r1r1​),此时兔子总数为22。第一个月时,只有初始兔子(记为r0r0​),此时兔子总数为11。简单通过率:42.17%时间限制:1秒空间限制:32M。第四个月时,r0r0​再生一只兔子,此时兔子总数为33。

2025-01-18 01:38:52 300

原创 HJ35 蛇形矩阵(Java版)

具体的构造方法为,从11开始填充自然数,记第ii行第11列的元素为ai,1=kai,1​=k,将其右上角的元素ai−1,2,ai−2,3,⋯ ,a1,iai−1,2​,ai−2,3​,⋯,a1,i​依次赋值为k+1,k+2,⋯ ,k+i−1k+1,k+2,⋯,k+i−1,随后,将ai,2ai,2​赋值为k+ik+i,并重复上述过程,直到填满上三角范围n(n+1)22n(n+1)​个格子。在一行上输入一个整数n(1≦n≦100)n(1≦n≦100)代表矩阵的大小。

2025-01-18 01:21:02 314

原创 HJ4 字符串分隔(Java版)

在一行上输入一个长度1≦length(s)≦1001≦length(s)≦100,由小写字母和数字混合构成的字符串ss。特别地,如果最后一行不满88个字符,则需要在字符串末尾补充00,直到长度为88。在这个样例中,字符串长度为1313,因此需要在第二行末尾补充33个00。简单通过率:26.94%时间限制:1秒空间限制:32M。输出若干行,每行输出88个字符,代表按题意书写的结果。∙ ∙书写接下来的88个字符,换行;∙ ∙书写前88个字符,换行;

2025-01-17 23:47:45 339

原创 HJ34 图片整理(Java版)

在一行上输入一个长度为1≦length(s)≦1031≦length(s)≦103,仅由大小写字母和数字构成的字符串ss,代表输入的字符串。对于给定的由大小写字母和数字组成的字符串,请按照ASCIIASCII码值将其从小到大排序。如果您需要了解更多关于ASCIIASCII码的知识,请参考下表。简单通过率:53.29%时间限制:1秒空间限制:32M。在一行上输出一个字符串ss,代表排序后的答案。

2025-01-17 17:01:07 222

原创 HJ23 删除字符串中出现次数最少的字符(Java)

在一行上输入一个长度为1≦length(s)≦201≦length(s)≦20,仅由小写字母构成的字符串ss,代表待处理的字符串。对于给定的仅由小写字母构成的字符串,删除字符串中出现次数最少的字符。输出删除后的字符串,字符串中其它字符保持原来的顺序。在这个样例中,出现次数最少的字符为‘b’‘b’和‘c’‘c’,因此需要同时删除这两个字符。简单通过率:36.26%时间限制:1秒空间限制:32M。特别地,若有多个字符出现的次数都最少,则把这些字符都删除。

2025-01-17 16:43:33 178

原创 HJ31 单词倒排(Java版)

在一行上输入若干个字符串,每个字符串长度为1≦length(s)≦201≦length(s)≦20,仅由大小写字母构成,代表一个单词。对于给定的若干个单词组成的句子,每个单词均由大小写字母构成,单词间使用非字母字符分隔。输出以单词为单位逆序排放的结果,即仅逆序单词间的相对顺序,不改变单词内部的字母顺序。在一行上输出一个句子,代表以单词为单位逆序排放的结果。特别地,在输出结果中,去除原有的分隔符,转而使用单个空格间隔单词。简单通过率:26.78%时间限制:1秒空间限制:32M。

2025-01-17 15:25:34 293

原创 HJ15 求int型正整数在内存中存储时1的个数(Java版)

∙ ∙十进制(10)10(10)10​等于二进制(1010)2(1010)2​。∙ ∙十进制(8)10(8)10​等于二进制(1000)2(1000)2​;∙ ∙十进制(9)10(9)10​等于二进制(1001)2(1001)2​;∙ ∙十进制(2)10(2)10​等于二进制(10)2(10)2​;∙ ∙十进制(3)10(3)10​等于二进制(11)2(11)2​;∙ ∙十进制(1)10(1)10​等于二进制(1)2(1)2​;

2025-01-17 14:51:34 370

原创 HJ13 句子逆序(Java版)

对于给定的若干个单词组成的句子,每个单词均由大小写字母混合构成,单词间使用单个空格分隔。输出以单词为单位逆序排放的结果,即仅逆序单词间的相对顺序,不改变单词内部的字母顺序。除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过103103。在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。简单通过率:43.35%时间限制:1秒空间限制:32M。在一行上输出一个句子,代表以单词为单位逆序排放的结果。

2025-01-17 14:41:02 181

原创 HJ11 数字颠倒(Java版)

对于给定的非负整数nn,将其以字符串的形式颠倒后输出。这意味着,如果nn的末尾含00,那么返回的字符串开头也需要含00。在一行上输入一个非负整数n(0≦n<230)n(0≦n<230)代表给定的整数。简单通过率:59.46%时间限制:1秒空间限制:32M。在一行上输出一个字符串,代表颠倒后的数字。

2025-01-17 14:30:42 332

原创 HJ10 字符个数统计(Java版)

备注:受限于输入,本题实际输入字符集为ASCIIASCII码在3333到126126范围内的可见字符。在一行上输入一个长度1≦length(s)≦5001≦length(s)≦500的字符串ss,代表给定的字符串。在一行上输出一个整数,代表给定字符串中ASCIIASCII在00到127127范围内的不同字符的个数。对于给定的字符串,统计其中的ASCIIASCII在00到127127范围内的不同字符的个数。

2025-01-17 14:24:23 362

原创 HJ22 汽水瓶(Java版)

∙ ∙第三轮兑换,刚刚余下11个空瓶、加上刚刚兑换的11瓶汽水喝完、再找老板借11个空瓶,共有33个空瓶。可以换11瓶汽水,余下00个空瓶。在一行上输入一个整数n(0≦n≦100)n(0≦n≦100),代表小张手上的空汽水瓶数量。特别地,n=0n=0代表输入结束,您只需要立即退出,不需要针对这种情况进行处理。∙ ∙第二轮兑换,刚刚余下11个空瓶、加上刚刚兑换的33瓶汽水喝完,共有44个空瓶。对于第一组测试数据,共有33个空瓶,可以换11瓶汽水。

2025-01-17 14:08:49 293

原创 HJ9 提取不重复的整数(Java版)

在这个样例中,先将数字倒序,得到37667893766789,然后去除重复数字,得到3768937689。对于给定的正整数nn,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。在一行上输入一个正整数n(1≦n≦108)n(1≦n≦108)代表给定的整数。入门通过率:46.73%时间限制:1秒空间限制:32M。在一行上输出一个整数,代表处理后的数字。保证nn的最后一位不为00。

2025-01-17 14:02:21 221

原创 HJ8 合并表记录(Java版)

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,随后按照索引值的大小从小到大依次输出。输出若干行,第ii行输出两个整数,代表合并后数据表中第ii条记录的索引和数值。第一行输入一个整数n(1≦n≦500)n(1≦n≦500)代表数据表的记录数。在这个样例中,第1,31,3条记录索引相同,合并数值为1+2=31+2=3。简单通过率:32.15%时间限制:1秒空间限制:32M。

2025-01-17 13:44:13 351

原创 HJ7 取近似值(Java版)

更具体地说,若xx的小数部分大于等于0.50.5,则输出向上取整后的整数;否则输出向下取整后的整数。在一行上输入一个小数点后位数不超过55位的实数x(0.00001≦x≦20)x(0.00001≦x≦20)。在这个样例中,2.4992.499的小数部分小于0.50.5,因此输出向下取整后的整数22。在这个样例中,5.55.5的小数部分大于等于0.50.5,因此输出向上取整后的整数66。入门通过率:49.96%时间限制:1秒空间限制:32M。

2025-01-17 09:55:56 223

原创 HJ6 质数因子(Java版)

对于给定的整数nn,从小到大依次输出它的全部质因子。即找到这样的质数p1,p2,⋯ ,pkp1​,p2​,⋯,pk​,使得n=p1×p2×⋯×pkn=p1​×p2​×⋯×pk​。在一行上输入一个整数n(2≦n≦2×108+14)n(2≦n≦2×108+14)代表待分解的整数。在这个样例中,180=2×2×3×3×5180=2×2×3×3×5。通过率:23.23%时间限制:1秒空间限制:32M。在一行上从小到大输出若干个整数,代表nn的质因子。

2025-01-17 09:50:47 380

原创 HJ5 进制转换(Java版)

在这个样例中,0xFA930xFA93的第00位是33,第11位是99,第22位是AA,第33位是FF,因此0xFA93=3×160+9×161+10×162+15×163=641470xFA93=3×160+9×161+10×162+15×163=64147。在本题中,十六进制数的格式为:0x0x开头,后跟若干个十六进制数字(0-90-9和A-FA-F)。回忆十六进制转化为十进制的方法:从右往左,将第ii位乘以16i16i,然后求和。

2025-01-17 09:42:49 374

原创 HJ2 计算某字符出现次数(Java版)

第一行输入一个长度1≦length(s)≦1031≦length(s)≦103,由大小写字母、数字和空格混合构成的字符串ss。对于给定的由大小写字母、数字和空格混合构成的字符串ss,统计字符cc在其中出现的次数。在一行上输出一个整数,代表字符cc在字符串ss中出现的次数。由于oo为小写字母,因此统计其小写形态出现的次数和,即33。简单通过率:30.31%时间限制:1秒空间限制:32M。∙ ∙若cc为数字,统计其出现的次数。

2025-01-17 09:14:15 234

原创 HJ1 字符串最后一个单词的长度(Java版)

在这个样例中,最后一个单词是"HelloNowcoder""HelloNowcoder",长度为1313。对于给定的若干个单词组成的句子,每个单词均由大小写字母混合构成,单词间使用单个空格分隔。输出最后一个单词的长度。除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过103103。简单通过率:34.46%时间限制:1秒空间限制:32M。在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。在一行上输出一个整数,代表最后一个单词的长度。

2025-01-17 09:08:08 304

原创 HJ17 坐标移动(Java版)

" 也是不合法的,因为 YY 不是 "A/D/W/S""A/D/W/S" 中的一个。" 是合法的,向下移动 2020 个单位,到达 (−10,−20)(−10,−20) 点;" 是合法的,向上移动 1010 个单位,到达 (−10,−10)(−10,−10) 点;∙ ∙第九个指令 "A10;" 是合法的,向左移动 1010 个单位,到达 (10,−10)(10,−10) 点。∙ ∙第一个指令 "A10;" 是合法的,向左移动 1010 个单位,到达 (−10,0)(−10,0) 点;∙ ∙第八个指令 ";

2025-01-16 16:46:25 890

原创 HJ3 明明的随机数(Java版)

此后 nn 行,第 ii 行输入一个整数 ai (1≦ai≦500)ai​ (1≦ai​≦500),代表明明生成的随机整数。第一行输入一个整数 n (1≦n≦1000)n (1≦n≦1000),代表明明生成的数字个数。输出若干行,每行输出一个整数,代表输入数据排序后的结果。较难 通过率:24.23% 时间限制:1秒 空间限制:32M。∙ ∙删去重复的数字,即相同的数字只保留一个,把其余相同的数去掉;∙ ∙然后再把这些数从小到大排序,按照排好的顺序输出。你只需要输出最终的排序结果。

2025-01-16 16:34:45 319

原创 HJ30 字符串合并处理(Java版)

∙ ∙对于第一个字符 ("a")16("a")16​ ,其十进制数为 (10)10(10)10​ ,二进制数为 (1010)2(1010)2​ ,翻转后得到 (0101)2(0101)2​ ,再转换回十六进制数为 (5)16(5)16​;∙ ∙对于第六个字符 ("f")16=(15)10=(1111)2("f")16​=(15)10​=(1111)2​ ,翻转后得到 (1111)2=(F)16(1111)2​=(F)16​。试题等级:较难 通过率:22.77% 时间限制:1秒 空间限制:32M。

2025-01-16 16:23:50 641

原创 HJ89 24点运算(Java版)

按一般的计算规则来看,K+K-(Q/6)=24 或 K-((Q/6)-K)=24,但是因为这个题目的运算不许有括号,所以去掉括号后变为 K+K-Q/6=26-Q/6=14/6=2 或 K-Q/6-K=1/6-K=0-K=-13,其它情况也不能运算出24点,故不存在,输出NONE。输出怎么运算得到24,如果无法得出24,则输出“NONE”表示无解,如果输入的4张牌中包含大小王,则输出字符串“ERROR”,表示无法运算;本程序要求实现:输入4张牌,输出一个算式,算式的结果为24点。

2025-01-16 11:34:19 665

原创 HJ93 数组分组(Java版)

输入int型数组,询问该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),不是5的倍数也不是3的倍数能放在任意一组,可以将数组分为空数组,能满足以上条件,输出true;不满足时输出false。数据范围:每个数组大小满足 1≤n≤50 1≤n≤50 ,输入的数据大小满足 ∣val∣≤500 ∣val∣≤500。试题登记:较难,时间限制:1秒 ,空间限制:32M。第一行是数据个数,第二行是输入的数据。第一组:5 -5 1。

2025-01-16 11:19:28 164

原创 HJ44 Sudoku(Java版)

数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据 9×99×9 盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个 3×33×3 粗线宫内的数字均含 1∼91∼9 这九个数字,且不重复。输入一个 9×99×9 的不完整数独矩阵,矩阵中的数字为 0∼90∼9。其中,00 表示该位置的数字尚未填入,1∼91∼9 表示该位置的数字已经填入。试题等级:困难,时间限制:1秒 ,空间限制:32M。输出一个 9×99×9 的完整数独矩阵。保证输入的数独是合法的,且存在唯一解。

2025-01-15 21:38:31 313

原创 HJ28 素数伴侣(Java版)

现在,密码学会邀请你设计一个程序,从给定的 nn 个正整数 {a1,a2,…,an}{a1​,a2​,…,an​} 中,挑选出最多的“素数伴侣”,你只需要输出挑选出的“素数伴侣”对数。,an(1≦ai≦3×104)a1​,a2​,…,an​(1≦ai​≦3×104) 代表给定的数字。定义两个正整数 aa 和 bb 是“素数伴侣”,当且仅当 a+ba+b 是一个素数。第一行输入一个正偶数 n(2≦n≦100)n(2≦n≦100) 代表数字个数。输出一个整数,代表最多可以挑选出的“素数伴侣”的数量。

2025-01-15 21:15:48 162

原创 Java面试题之==和equals的关系(二)

未重写equals方法的类:Object中的equals方法实际使用的也是==操作符,比较的是他们的内存地址是否同一地址。重写了equals方法的类:实现该类自己的equals方法比较逻辑(一般是比较对象的内容是否相同)。引用类型对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。Integer:比较对应的基本数据类型int的值是否相同(==操作符)。equals方法常用来比较对象的内容是否相同。String:比较字符串内容,内容相同这相同;==操作符专门用来比较变量的值是否相同。

2025-01-07 16:49:39 85

原创 SpringCloudAlibaba实战入门之入门介绍(一)

一、什么是SpringCloud在介绍SpringCloudAlibaba之前,我们先简单的说一下SpringCloud。提起微服务,不得不提SpringCloud全家桶系列,SpringCloud是一系列框架的有序集合。SpringCloud通过SpringBoot风格的封装,屏蔽掉了复杂的配置和实现原理,简化了分布式系统集成设施的开发。SpringCloud提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。

2025-01-07 16:03:06 850 1

原创 Java大厂面试题之10种分布式ID的生成方案

日常工作中,我们开发的系统、或者中间件,都是分布式部署的。比如你的订单数据库,做了分库分表,这时候,你需要一个唯一的ID来标记一条数据。这时候,就需要分布式ID。分布式ID是在分布式系统下使用的ID,用于在多个节点中生成全局唯一的标识符。

2025-01-07 11:41:47 516

原创 Java面试题之Thread线程安全(一)

什么是线程安全/不安全?如果只有一个线程才可以操作此数据,则必是线程安全。如果有多个线程操作此数据,则此数据是共享数据。如果不考虑同步(加锁)机制,会存在线程安全问题。

2025-01-06 15:36:58 129

空空如也

空空如也

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

TA关注的人

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