
算法题记录
文章平均质量分 57
选了一些自己做出来的
觉得比较好的算法题
Dddddduo_
江苏省高中数学竞赛三等奖 阿里云认证专家博主 字节跳动青训营后端优秀奖
展开
-
牛客春招刷题训练营 算法 Java 3月28日 不要三句号的歪 尼科彻斯定理 隐匿社交网络
第一次切割 我们将字符串切割成左右两部分 切割字符串 ",...,"两个二进制的表示在每一位上不能同时为 1 的两个数按位与运算是 0。合并后 看一下最大的子集的元素个数 就得出了我们需要的答案。然后 后面那个数组的第一部分 减去前面数组的最后一部分。按位与操作运算得到的结果是 0 的两个数不能合并。第二次切割 我们将左边的字符串按 "," 切割。第三次切割 我们将右边的字符串按 "," 切割。只要是有某一位上的数都是 1 就进行合并。所以我们找到了每一位的数。这是我们写的第一个方法。原创 2025-04-02 19:04:05 · 235 阅读 · 0 评论 -
牛客春招刷题训练营 算法 Java 3月27日 杨辉三角的变形 计算日期到天数转换 而后单调
用 get 方法获取时间 传入的属性是字符串(成员变量)我这边直接调用的Calendar 类。首先获得 Calendar 单例对象。然后用 set 方法挂载属性值。其次有两个相邻元素一样的不行。我们打个表就不难发现规律。首先严格递增的序列不行。原创 2025-04-02 19:03:32 · 191 阅读 · 0 评论 -
牛客春招刷题训练营 3月25日 Java 查找两个字符串a,b中的最长公共子串 构造C的歪
牛客春招刷题训练营# +子串必须是连续的那么 dp[i][j] 的状态只能由 dp[i-1][j-1] 得到可以跟力扣上的最长公共子序列类比差不多可以做一下力扣 1143 子串必须是连续的那么 dp[i][j] 的状态只能由 dp[i-1][j-1] 得到可以跟力扣上的最长公共子序列类比差不多可以做一下力扣 1143 子串必须是连续的那么 dp[i][j] 的状态只能由 dp[i-1][j-1] 得到可以跟力扣上的最长公共子序列类比差不多可以做一下力扣 114原创 2025-03-25 14:14:27 · 209 阅读 · 0 评论 -
算法入门 经典DP 力扣1143 最长公共子序列 拓展最长子串 Java
它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。那么 dp[i][j] 的状态只能由 dp[i-1][j-1] 得到。那么 dp[i][j] 的状态只能由 dp[i-1][j-1] 得到。否则则顺延 dp[i-1][j] 和 dp[i][j-1]在字符串中可以不是连续的。原创 2025-03-25 13:48:34 · 290 阅读 · 0 评论 -
牛客春招刷题训练营 3月24日 Java 统计每个月兔子的总数 高精度整数加法 喜欢切数组的红
牛客春招刷题训练营# +很经典的 dp爬楼梯递推写法 喜欢切数组的红可以存一下前缀和为 3 的集合再存一下后缀和为 3 的集合然后遍历看情况符合跑了 500ms原创 2025-03-25 12:20:23 · 246 阅读 · 0 评论 -
牛客周赛84 题解 Java ABCDE 仅供参考
如果要经过 2 轮得出答案 有 4*4=16 种组合 看一下这些组合有没有得出 0。如果要经过 1 轮得出答案 有 4 种组合 看一下这些组合有没有得出 0。因为数据量很小 我考虑的暴力了一点 直接枚举了每条边都是最长边的情况。最后得到的队列肯定是 01010101 101010... 类似的。首先我们知道的是 两个数如果相同 异或运算得到的数为 0。那么如果现在集合里面有两个一样的数 那么只要再操作一次。如果队列尾部的元素跟要添加的元素不一样。如果队列尾部的元素跟要添加的元素一样。原创 2025-03-23 21:22:28 · 408 阅读 · 0 评论 -
Java 双端队列实战 实现滑动窗口 用LinkedList的基类双端队列Deque实现 洛谷[P1886]
在 Java 中,Deque 是一个双端队列接口,它继承自 Queue 接口,支持在队列的两端进行元素的插入、删除和访问操作。LinkedList 是 Deque 接口的一个实现类,下面介绍 Deque<Integer> deque = new LinkedList<>(); 常见的操作。原创 2025-03-22 21:54:34 · 505 阅读 · 0 评论 -
牛客周赛85 题解 Java ABCDEFG
如果 l 大于紫色末尾 则可以染成紫色 更新紫色末尾为第二段结束的 r。如果第三段的起始 l 大于红色末尾 更新红色末尾为第二段结束的 r。10101 可以 10101 -> 10001 -> 11111。一部分染紫色 一部分染红色 等效于 一部分染红色 一部分染紫色。1010 可以 1010 -> 1110 -> 1111。第一段为红色 那么红色的末尾为 arr[0][2]操作 1001 等效于操作 101。101 可以 101 -> 111。如果第二段的起始 l 小于红色末尾。原创 2025-03-16 21:45:09 · 505 阅读 · 0 评论 -
牛客春招刷题训练营 3月14日 Java 字符个数统计 删除字符串中出现次数最少的字符 四则运算
牛客春招刷题训练营 3月14日 Java 字符个数统计 删除字符串中出现次数最少的字符 四则运算原创 2025-03-16 16:07:12 · 120 阅读 · 0 评论 -
牛客春招刷题训练营 3月13日 Java 提取不重复的整数 句子逆序 迷宫问题
牛客春招刷题训练营 3月13日 Java 提取不重复的整数 句子逆序 迷宫问题原创 2025-03-16 16:06:19 · 445 阅读 · 0 评论 -
牛客春招刷题训练营 3月12日 Java 进制转换 合并表记录 称砝码
牛客春招刷题训练营 3月12日 Java 进制转换 合并表记录 称砝码原创 2025-03-16 16:05:34 · 226 阅读 · 0 评论 -
牛客周赛84 题解 Java ABCDEFG AK实录
【代码】牛客周赛84 题解 Java ABCDEFG AK实录。原创 2025-03-16 16:04:09 · 640 阅读 · 0 评论 -
题解 | 牛客周赛83 Java ABCDEF AK实录
剩下了多少步然后是 在上面走 在右边走 在下面走 在左边走 在上面走 根据 a 可以算出每条边各需要多少步。我的解法是先求出位于 (1,1)(2,2)(3,3)(4,4) 点要多少步。再在每次运动 都要 for(1-6) 找一下这六步对 dp 数组的更新。维护一个 dp 数组 代表的是到达当前位置获取到的最大贡献值。所以先求出要求的这个点是从哪个开始的 即(a,a)构造 1 2 1 2 1 2 1 2 1 2。输出两个不是同一方位的字符中的任意一个就行。然后算到(a,a)一共要多少步。原创 2025-03-02 22:48:54 · 976 阅读 · 0 评论 -
题解 | 牛客周赛82 Java ABCDEF AK实录
其中可选的数是 排列的最大值n - 比重复数字小的数(不能填) -前面有多少数 (注意要把重复的数空下来)如果一个元素与前面这个元素不同 这个数就是确定的 而后面跟这个数相同的数就都是不确定的。数组的索引i 的值表示的是前 i 个元素最小的 m 个数的和。我们只需要统计这段重复的数字和可以填入的数字的排列组合就行。通过优先队列筛选出前 i 个元素数值大的元素并进行移除。优先队列采用的是大顶堆(数值大的元素优先级高)我们发现给出的元素只能是递减的。按照索引大小的规则来排序元素。重复的数我们计数出来的。原创 2025-03-02 00:30:25 · 665 阅读 · 0 评论 -
Java算法 二叉树入门 力扣简单题相同的树 翻转二叉树 判断对称二叉树 递归求二叉树的层数
根节点左孩子节点右孩子节点。左孩子节点根节点右孩子节点。左孩子节点右孩子节点根节点。原创 2025-01-17 21:59:42 · 634 阅读 · 0 评论 -
双端队列实战 实现滑动窗口 用LinkedList的基类双端队列Deque实现 洛谷[P1886]
Deque 是一个接口LinkedList 是这个接口的实现类。集合 关系 介绍Deque 是一个接口LinkedList 是这个接口的实现类原创 2025-01-15 19:13:21 · 491 阅读 · 0 评论 -
Java 数据结构 队列之双端队列 常用方法 示例代码 及其实现
Java中的双端队列(Deque,Double Ended Queue)是一种队列,它允许在队列的两端插入和删除元素。与普通队列(FIFO)不同,双端队列的元素可以从队列的两端进行添加或删除。Java提供了Deque接口,它扩展了Queue接口,常见的实现类有ArrayDeque和LinkedList。原创 2025-01-15 19:11:57 · 413 阅读 · 0 评论 -
Java算法 数据结构 栈 单调栈实战 模版题 [洛谷-P5788]
【代码】Java算法 数据结构 栈 单调栈实战 模版题 [洛谷-P5788]原创 2025-01-15 18:37:26 · 511 阅读 · 0 评论 -
Java算法 数据结构基础 并查集 模版 [洛谷-P3367]
并查集(Union-Find)是一种数据结构,主要用于处理一些不交集的合并及查询问题,特别是在图论中用来解决连通性问题。查找(Find):判断某个元素属于哪个集合,返回该集合的代表元素(根)。合并(Union):将两个集合合并成一个集合。并查集通过路径压缩和按秩合并来优化效率,减少操作的时间复杂度。原创 2025-01-15 18:36:54 · 963 阅读 · 0 评论 -
[豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第三天
欢迎你报名豆包MarsCode 青训营-寒假专场!非常开心你加入这个充满活力和创新的大家庭。在这里,你将遇到一群和你一样对技术充满热情的小伙伴,一起学习、成长、分享~我们准备了丰富的课程内容,还有各种实战项目等你来挑战,相信你一定会收获满满青训营是字节跳动技术团队发起的技术系列培训 & 人才选拔项目;面向高校在校生,旨在培养优秀且具有职业竞争力的开发工程师。11 中 观光景点组合得分问题55 易 小E的射击训练47 易 完美偶数计数48 易 替换函数70 易 打点计数器的区间合并原创 2025-01-08 16:40:18 · 427 阅读 · 0 评论 -
[豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第二天
欢迎你报名豆包MarsCode青训营-寒假专场!非常开心你加入这个充满活力和创新的大家庭。在这里,你将遇到一群和你一样对技术充满热情的小伙伴,一起学习、成长、分享~我们准备了丰富的课程内容,还有各种实战项目等你来挑战,相信你一定会收获满满青训营是字节跳动技术团队发起的技术系列培训&人才选拔项目;面向高校在校生,旨在培养优秀且具有职业竞争力的开发工程师。8易找出整型数 2 中 徒步旅行中的补给问题 3 易 数字字符串格式化 4 易 数字分组求偶数和 15 中 最小前缀操作问题 34 易 游戏排名第三大的分数原创 2025-01-08 10:48:33 · 345 阅读 · 0 评论 -
[豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第一天
欢迎你报名豆包MarsCode青训营-寒假专场!非常开心你加入这个充满活力和创新的大家庭。在这里,你将遇到一群和你一样对技术充满热情的小伙伴,一起学习、成长、分享~我们准备了丰富的课程内容,还有各种实战项目等你来挑战,相信你一定会收获满满青训营是字节跳动技术团队发起的技术系列培训&人才选拔项目;面向高校在校生,旨在培养优秀且具有职业竞争力的开发工程师。8易找出整型数组中占比超过一半的数20易比赛配对问题29易小D的'acb'变换问题25.易 DNA序列编辑距离1易找单独的数原创 2025-01-08 10:13:14 · 408 阅读 · 0 评论 -
cf988(1)
cf988 div3 题解 by KDB。原创 2024-11-18 20:06:38 · 54996 阅读 · 0 评论 -
cf988
比赛地址: https://codeforces.com/contest/2037。原创 2024-11-18 18:52:49 · 55184 阅读 · 0 评论 -
2023北华大学程序设计新生赛部分题解
时光如流水般逝去,我已在校园中奋战大二!(≧▽≦) 今天,静静回顾去年的新生赛,心中涌起无尽感慨,仿佛那段青春岁月如烟花般绚烂。✧。(≧▽≦)。✧青春就像一场燃烧的盛宴,激情澎湃,犹如晨曦中第一缕光辉!(☆ω☆) 它是追梦的勇气,无畏的挑战,数不清的夜晚为理想拼搏的坚定信念。让我们在这段时光中,挥洒热血,尽情追逐,书写属于自己的奇迹!(*≧ω≦)好吧,我编不下去了,所以给这段青春打上@Deprecated注解!(。•́︿•̀。)接下来,让我们一起回顾去年的新生赛吧!原创 2024-09-21 21:55:21 · 92188 阅读 · 0 评论 -
Codeforces Round 964 (Div. 4) A-E Java题解
注意数据类型 2*10e5为了防止超时我们可以先把数组开出来 然后直接根据数 l r 进去找再来看题目一个数/3 一个数*3要把所有数变成0在纸上画一下 不难想到 只要有一个0出现 就能让这个数一直*3 其余的数/3然后只要算一下此时n-1个数 分别要/3多少次才能变成0的和就行贪心算法 那个数肯定是L 就是最小的那个数 因为他/3最少次能变成0然后其他数就只管/就好了我们把先l-r这些数一共要/3 多少次求出来然后因为我们操作第一个数的时候 给另一个数*3了f原创 2024-09-01 16:30:15 · 96428 阅读 · 0 评论 -
Java算法模板 数据流快读
【代码】Java算法模板。原创 2024-05-29 18:35:23 · 102778 阅读 · 1 评论 -
C++算法模板
【代码】C++算法模板。原创 2024-05-23 03:20:23 · 102794 阅读 · 3 评论 -
[NOIP2002]过河卒 标准递归
如果没有马存在 就是一个经典的递归题。原创 2024-05-21 18:17:17 · 102769 阅读 · 0 评论 -
杭电 OJ 1010-1019 Java解法(未更新完毕)
先得到结果然后面向结果输出结果即可。原创 2024-05-11 09:42:36 · 102737 阅读 · 1 评论 -
杭电acm1201 18岁生日 Java解法 时间类
用JDK特有的时间类求解。原创 2024-05-04 23:11:14 · 103324 阅读 · 0 评论 -
杭电 OJ 1000-1009 Java解法
线性遍历过了 时间复杂度为O(2n)最后再遍历一次即可 时间复杂度O(n)将双层for循环替换成剪枝 还是没过。位运算防爆 1000题的阴影。第三个数由第一个和第二个决定。两两组合 7*7 周期为49。对7取余就只能出现0到7。用java特有双列集合。先解性价比最高的做法。原创 2024-05-04 21:48:12 · 103431 阅读 · 0 评论 -
杭电acm2018 母牛的故事 Java解法 经典递归
先模拟 接着找递归出口 再找递归通式原创 2024-05-04 21:01:59 · 103390 阅读 · 0 评论 -
杭电acm1013 Digital Roots 数字根 Java解法 高精度
【代码】杭电1013 Digital Roots 数字根。原创 2024-05-04 20:05:41 · 103384 阅读 · 0 评论