算法
文章平均质量分 51
算法基础
张学友唱我的歌
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小覆盖子串
对于窗口中的有效字符个数,当窗口中的字符对应数量小于或者等于 t中对应字符的数量时,才计入窗口的有效字符个数,超过的数量不计。最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。,因此我们需要统计【 t中每个字符的数量】,以及【滑动窗口中每个字符的数量】。t的【有效字符总数】时,尝试缩短左边界。当滑动窗口移除的字符对应的数量。t 中两个字符 'a' 均应包含在 s 的子串中,t中对应字符的数量 , 滑动窗口有效字符总数-1。因此没有符合条件的子字符串,返回空字符串。原创 2025-07-25 10:23:28 · 146 阅读 · 0 评论 -
华为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 · 156 阅读 · 0 评论 -
华为od-仿LSP运算
【代码】仿LSP运算。原创 2025-07-01 16:43:48 · 142 阅读 · 0 评论 -
华为od 跳格子2
另一组不包含第一个元素但包含最后一个元素。分别进行推导,取两者的最大值。原创 2025-07-09 16:47:51 · 182 阅读 · 0 评论 -
华为od-食堂供餐
现在需要根据以往员工取餐的统计信息,计算出一个刚好能达成排队时间为0的最低供餐速度。第3行为N个正整数,用空格分隔,依次表示开餐时间内按时间顺序每个单位时间进入食堂取餐的人数Pi。2、二分法的左边界为0 ,因为有可能开餐前准备的盒饭数够全部员工食用了;右边界为进入食堂单位时间员工的最大数量。3、下一个单位时间的剩余盒饭数= 当前盒饭数 - 当前单位时间员工人数 + 单位时间供餐速度。为将员工取餐排队时间降低为0,食堂的供餐速度必须要足够快。食堂每个单位时间至少要做出3份餐饭才能达成排队时间为0的目标。原创 2025-07-30 08:58:13 · 390 阅读 · 0 评论 -
异常的打卡记录
考勤记录是分析和考核职工工作时间利用情况的原始依据,也是计算职工工资的原始依据,为了正确地计算职工工资和监督工资基金使用情况,公司决定对员工的手机打卡记录进行异常排查。如果出现以下两种情况,则认为打卡异常:实际设备号与注册设备号不一样 或者,同一个员工的两个打卡记录的时间小于60分钟并且打卡距离超过5km。给定打卡记录的字符串数组 clockRecords(每个打卡记录组成为:工号;1. 对于每一条打卡记录,实际设备号与注册设备号不一样则视为异常打卡。之后的N行为打卡记录,每一行为一条打卡记录。原创 2025-07-30 09:10:17 · 318 阅读 · 0 评论 -
华为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 · 303 阅读 · 0 评论 -
华为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 · 586 阅读 · 0 评论 -
华为od-素数伴侣
an}中,挑选出最多的“素数伴侣”,你只需要输出挑选出的“素数伴侣”对数。在这个样例中,2 和 5 可以组成一对素数伴侣,6 和 13也可以组成一对素数伴侣。每次奇数遍历初始化一个 boolean[] used , 表示下面 遍历的偶数 是否被当前奇数循环 出现的奇数匹配过。并且当前次的偶数和奇数有效, evenMath[i]=当前循环的奇数,count+1。在这个样例中,1 只能使用一次,与任意一个 2组合均是“素数伴侣”。中,是否已经有了奇数伴侣 ,如果没有,则有效,count+1;原创 2025-08-01 09:39:50 · 328 阅读 · 0 评论 -
华为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 · 1347 阅读 · 0 评论 -
其他进制转十进制
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 · 142 阅读 · 0 评论 -
十进制转成其他进制
转成字符保存到 StringBuilde。3.最终StringBuilder。1.每次除以基数base ,余数。若不为0,则继续用商。原创 2025-07-24 16:28:35 · 161 阅读 · 0 评论
分享