- 博客(25)
- 收藏
- 关注
原创 completablefuture
优点: future+线程池异步多线程任务配合,能显著提升程序的执行效率缺点:1.get容易导致阻塞,一般建议放在程序后面,一旦调用不见不散,非要等到结果才会离开,不管你是否计算完成,容易程序堵塞。假如我不愿意等待很长时间,我希望过时不候,可以自动离开。可以设置超时时间,一定程度解决了阻塞,但是程序大量抛出异常也不优雅。
2025-09-27 16:54:29
902
原创 华为od-素数伴侣
an}中,挑选出最多的“素数伴侣”,你只需要输出挑选出的“素数伴侣”对数。在这个样例中,2 和 5 可以组成一对素数伴侣,6 和 13也可以组成一对素数伴侣。每次奇数遍历初始化一个 boolean[] used , 表示下面 遍历的偶数 是否被当前奇数循环 出现的奇数匹配过。并且当前次的偶数和奇数有效, evenMath[i]=当前循环的奇数,count+1。在这个样例中,1 只能使用一次,与任意一个 2组合均是“素数伴侣”。中,是否已经有了奇数伴侣 ,如果没有,则有效,count+1;
2025-08-01 09:39:50
320
原创 华为od-矩阵匹配
从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的。N*M 的矩阵中可以选出 M!种组合数组,每个组合数组种第 K 大的数中的最小值。种组合数组,每个组合数组种第 K 大的数中的最小值;上述输入样例中选出的组合数组有24种,最小数组为1,3,3,则第2大的最小值为3。行 不同列 的值都比value小的序列,如果有,则缩小value范围,否则扩大。3、判断匹配的行数是否 >=n-k+1 ,满足 则 二分边界向左移;
2025-08-01 09:34:25
550
原创 异常的打卡记录
考勤记录是分析和考核职工工作时间利用情况的原始依据,也是计算职工工资的原始依据,为了正确地计算职工工资和监督工资基金使用情况,公司决定对员工的手机打卡记录进行异常排查。如果出现以下两种情况,则认为打卡异常:实际设备号与注册设备号不一样 或者,同一个员工的两个打卡记录的时间小于60分钟并且打卡距离超过5km。给定打卡记录的字符串数组 clockRecords(每个打卡记录组成为:工号;1. 对于每一条打卡记录,实际设备号与注册设备号不一样则视为异常打卡。之后的N行为打卡记录,每一行为一条打卡记录。
2025-07-30 09:10:17
310
原创 华为od-食堂供餐
现在需要根据以往员工取餐的统计信息,计算出一个刚好能达成排队时间为0的最低供餐速度。第3行为N个正整数,用空格分隔,依次表示开餐时间内按时间顺序每个单位时间进入食堂取餐的人数Pi。2、二分法的左边界为0 ,因为有可能开餐前准备的盒饭数够全部员工食用了;右边界为进入食堂单位时间员工的最大数量。3、下一个单位时间的剩余盒饭数= 当前盒饭数 - 当前单位时间员工人数 + 单位时间供餐速度。为将员工取餐排队时间降低为0,食堂的供餐速度必须要足够快。食堂每个单位时间至少要做出3份餐饭才能达成排队时间为0的目标。
2025-07-30 08:58:13
384
原创 华为od-最多几个直角三角形
每行第一个正整数N,表示线段个数(3<=N<=20),接着是N个正整数,表示每条线段长度,(0<a[i]<100)。对于每组测试数据输出一行,每行包括一个整数,表示最多能组合的直角三角形个数。1.定义一个集合 ,sides,用来保存每条边的平方,并按照从小到大排序。第一行输入一个正整数T(1<=T<=100),表示有T组测试数据.可以组成2个直角三角形(3,4,5)、(5,12,13)2.定义一个Set,保存每条边的平方,去重,方便后续剪枝。有N条线段,长度分别为a[1]-a[n]。
2025-07-29 17:32:26
326
原创 华为od-构成正方形的数量
输入N个互不相同的二维整数坐标,求这N个坐标可以构成的正方形数量。[内积为零的的两个向量垂直]第一行输入为N,N代表坐标数量,N为正整数。N <= 100之后的 K 行输入为坐标x y以空格分隔,x,y为整数,-10<=x, y<=10输出可以构成的正方形数量。输入 输出 说明输入 输出 说明题解:1、两个点的向量公式:例如 A(x1,y1) ,B (x2,y2) , 则向量AB = (x2-x1,y2-y1) ,向量BA=(x1-x2,y1-y2)。向量是可以任意平移的。2
2025-07-29 08:59:14
1306
原创 华为od-伐木工
一根X米长的树木,伐木工切割成不同长度的木材后进行交易,交易价格为每根木头长度的乘积。一根4米长的树木,伐木工不需要切割为2 * 2,省去切割成本,直接整根树木交易,为4 * 1,收益最大为4。一根10米长的树木,伐木工可以切割方式一:3,4,4,也可以切割为方式二:3,2,2,3,但方式二伐。如果余2,直接计入结果里即可。木工多切割一次,增加切割成本却买了一样的价格,因此并不是最优收益。一根2米长的树木,伐木工不切割,为2 * 1,收益最大为2。一根5米长的树木,伐木工切割为2 * 3,收益最大为6。
2025-07-25 11:23:15
292
原创 正整数到Excel编号之间的切换[100分]
用过 excel 的都知道excel的列编号是这样的:分别代表以下编号:1 2 3 … 26 27 28 29 … 52 53 54 55 … 676 677 678 679 … 702 703 704 705 … 请写个函数,完成从一个正整数到这种字符串之间的转换。
2025-07-25 11:12:17
224
原创 最小覆盖子串
对于窗口中的有效字符个数,当窗口中的字符对应数量小于或者等于 t中对应字符的数量时,才计入窗口的有效字符个数,超过的数量不计。最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。,因此我们需要统计【 t中每个字符的数量】,以及【滑动窗口中每个字符的数量】。t的【有效字符总数】时,尝试缩短左边界。当滑动窗口移除的字符对应的数量。t 中两个字符 'a' 均应包含在 s 的子串中,t中对应字符的数量 , 滑动窗口有效字符总数-1。因此没有符合条件的子字符串,返回空字符串。
2025-07-25 10:23:28
142
原创 求两个数的最大公约数
原理: 除数作为一下轮的被除数,余数作为下一轮的除数,如此 直到除数为0,返回最后的被除数即可。被除数1/除数1= 商..余数1 , 除数1/余数1=商..余数2 , 余数1/余数2...
2025-07-24 16:40:58
114
原创 其他进制转十进制
result=result✖base+第三位的值,依次类推。2、res=1 * 2 + 左边第二位1, 等于 3。result=result✖base +第一位的值。1、res = 0*2 + 左边第一位1 ,等于1。result=result✖base+第二位的值。定义权重base ,初始化结果result=0。4、res=6*2+ 最后一位1 ,等于 13。3、res=3*2 +左边第三位0,等于6。最后返回结果result。
2025-07-24 16:36:24
141
原创 十进制转成其他进制
转成字符保存到 StringBuilde。3.最终StringBuilder。1.每次除以基数base ,余数。若不为0,则继续用商。
2025-07-24 16:28:35
156
原创 华为od-最佳对手实力差距最小总和
游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。给定n个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距d内,则可以匹配。匹配后,各组对战的实力差值的总和。若没有队伍可以匹配,则输出-1。要求在匹配队伍最多的情况下匹配出的各组实力差距的总和最小。允许的最大实力差距d。第二行,n个队伍的实力值空格分割。总实力差距29+22+6=57。18与47配对,实力差距29。59与81配对,实力差距22。81与87配对,实力差距6。
2025-07-10 16:23:16
152
原创 k8s集群安装
搭建K8S集群,准备三台2核4G的虚拟机(内存至少2G以上),操作系统选择用centos 7以上版本。保存结果中的命令,后面从节点要执行。(根据自己机器初始化结果)如果令牌忘记了,可以在master通过下面的命令在重新生成令牌。以下所有命令都是在/root 目录下执行,未切换过目录。所有机器执行以下操作 ,每个机器使用内网ip互通。vi编辑模式下,按esc, 输入。等几分钟后查询pod情况。所有机器执行以下操作。所有机器执行以下操作。
2025-03-10 14:37:18
1217
原创 解决java Object转成JSONObject之后,null的字段丢失问题。(包括Object中的类型为List的字段)
【代码】解决java Object转成JSONObject之后,null的字段丢失问题。(包括Object中的类型为List的字段)
2025-01-22 16:18:32
348
原创 【DBUtil】工具类和【Druid】连接池的使用
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的封装使用dbutils能极大简化idbc编码的工作量。下载链接。
2024-01-21 21:44:03
1151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1