Skip to content

jiangxiewei/acm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

acm

毕业后吃饱了撑没事干写写题,缅怀以前打ACM的日子.

题目分类

题号 题名 难度 简介 题解
103 二叉树的锯齿形层序遍历 中等(简单) 基础的层序遍历题 java
543 二叉树的直径 简单 分治法,算出每个节点的左最大深度和右最大深度,比较并返回更大的 java

题号 题名 难度 简介 题解
leetcode 32 最长有效括号 困难(中等) 贪心/栈/动态规划 多种解法 java
leetcode 445 两数相加II 中等 java
leetcode 503 下一个更大元素 II 中等 单调栈 rust
leetcode 739 每日温度 中等 单调栈 或 贪心 java
leetcode 856 括号的分数 中等 1.暴力 2.栈 3.数学思维 java
leetcode 1544 整理字符串 简单 1.模拟 2.栈 3.递归 java

搜索

题号 题名 难度 简介 题解
leetcode 10 正则表达式匹配 困难(中等吧) 依旧普通的递归搜索题 java
leetcode 22 括号生成 简单 ez java
leetcode 33 搜索旋转排序数组 中等 二分搜索 java
leetcode 34 在排序数组中查找元素的第一个和最后一个位置 中等 二分搜索,但要找最左和最右 java
leetcode 209 长度最小的子数组 中等 滑动窗口法,可让左右区间滑动搜索实现O(n),也可用二分法针对每个左开区间寻找右闭区间. java
leetcode 297 二叉树的序列化与反序列化 困难(中等吧) 树遍历也是搜索 java

动态规划

题号 题名 难度 简介 题解
leetcode 5 最长回文子串 简单 找准状态转移逻辑 java rust
leetcode 53 最大子序和 简单(中等) dp思路或者可以用数学推导求 java
面试题17.16 按摩师 简单 尝试从DFS->尾递归->DP的一个推断流程,注释里有 java
面试题46 把数字翻译成字符串 简单 也可以用搜索 java
leetcode 416 分割等和子集 中等 01背包题,由于"物品"没有"价值",所以结果值可以只用true false代表可达性 java
leetcode 1143 最长公共子序列 中等 二维动态规划 java

并查集

题号 题名 难度 简介 题解
leetcode 990 satisfiability-of-equality-equations 简单 模板题,可以测试自己写的模板 java

树状数组

题号 题名 难度 简介 题解
leetcode 315 计算右侧小于当前元素的个数 困难 树状数组 + 离散化,注意下数据有重复 java

图论

拓扑排序

题号 题名 难度 简介 题解
210 课程表II 中等 拓扑排序 + 深度/广度优先遍历 java

Dijkstra

题号 题名 难度 简介 题解
leetcode 45 跳跃游戏II 中等 可将图画出来,发现就是最短路 java
leetcode 1514 概率最大的路径 中等 Dijkstra java

网络流

题号 题名 难度 简介 题解
hdu 3549 Flow Problem 简单 完全模板题,可以测试自己写的网络流模板,但是输入有坑 java

LeetCode刷题

括号里是个人认为的难度

题号 题名 难度 简介 题解
1 两数之和 简单 1.左右指针 2.Map java rust
2 两数相加 中等 链表相加 java rust
5 最长回文子串 简单 1.dp找准状态转移逻辑 2.中心扩散 java rust
10 正则表达式匹配 困难(中等) 依旧普通的递归搜索题 java
11 盛最多水的容器 中等 需要灵机一现的双指针 java
12 整数转罗马数字 中等(简单) 除+取余 java
13 罗马数字转整数 简单 简单的规则 java
15 三数之和 中等 两数之和进阶版(本质一样) java
16 最接近的三数之和 中等 夹逼,思路和No.11类似 java
17 电话号码的字母组合 中等 全排列,DFS java
18 四数之和 中等 和三数之和类似 java
19 删除链表的倒数第N个节点 中等 快慢指针 java
20 有效的括号 简单 数据结构-栈 java
21 合并两个有序链表 简单 数据结构-链表 java
22 括号生成 中等(简单) 一般的搜索题 java
24 两两交换链表中的节点 简单 一般的递归 java
25 K 个一组翻转链表 困难(中等) 模拟题 java
28 找出字符串中第一个匹配项的下标 简单(KMP中等) 经典字符串匹配 java
29 两数相除 中等 除法的底层实现 rust)
32 最长有效括号 困难(中等) 贪心/栈/动态规划 多种解法 java
33 搜索旋转排序数组 中等 二分搜索 java
34 在排序数组中查找元素的第一个和最后一个位置 中等 二分搜索,但要找最左和最右 java
42 接雨水 困难 太久了,忘了内容了 java
45 跳跃游戏II 中等 可将图画出来,发现就是最短路 java
53 最大子数组和 简单(中等) dp思路或者可以用数学推导求 java
54 螺旋矩阵 中等(简单) 就是模拟,不过可用四个变量标记已遍历过的行和列来优化空间复杂度 java
67 二进制求和 简单 高精度数API可解,题解也有位运算法解 java
84 柱状图中最大的矩形 困难 运用栈可以进一步优化. java
88 合并两个有序数组 简单 简单题,优化小点在从后往前遍历指针来节省空间. java
103 二叉树的锯齿形层序遍历 中等(简单) 基础的层序遍历题. java
137 只出现一次的数字 II 中等(困难) 普通做法很简单,不使用额外空间实现 就略麻烦,可能需要逻辑代数知识 java
146 LRU 缓存机制 中等 模拟/数据结构 java
160 No160相交链表 中等 我用求合法做到空间O(1),然而官方题解二的双指针也十分巧妙 java
206 反转链表 简单 基础数据结构操作 java
209 长度最小的子数组 中等 滑动窗口法,可让左右区间滑动搜索实现O(n),也可用二分法针对每个左开区间寻找右闭区间. java
210 课程表II 中等 拓扑排序 + 深度/广度优先遍历 java
240 搜索二维矩阵II 中等 找规律 java
297 二叉树的序列化与反序列化 困难 树的遍历的运用. java
315 计算右侧小于当前元素的个数 困难 树状数组 + 离散化,注意下数据有重复 java
416 分割等和子集 中等 01背包题,由于"物品"没有"价值",所以结果值可以只用true false代表可达性 java
445 两数相加II 中等 java
503 下一个更大元素 II 中等 单调栈 rust
528 按权重随机选择 中等 随机算法方案? java
543 二叉树的直径 中等 分治法,算出每个节点的左最大深度和右最大深度,比较并返回更大的 java
739 每日温度 中等 单调栈 或 贪心 java
749 隔离病毒 困难 搜索、模拟、(并查集) java
856 括号的分数 中等 1.暴力 2.栈 3.数学思维 java
862 和至少为 K 的最短子数组 困难 找定义,找优化点,比较过程中更新比较集来实现优化 java
912 排序数组 中等 基础排序实现,这里我用了归并. java
945 使数组唯一的最小增量 中等(简单) 每日推荐里的水题 java
990 等式方程的可满足性 简单 模板题,可以测试自己写的模板 java
1014 最佳观光组合 简单 贪心 java
1143 最长公共子序列 中等 二维动态规划 java
1496 判断路径是否相交 简单 签到题 java
1497 仅含 1 的子串数 中等 找性质,找到两个重要性质就很好借. java
1512 好数对的数目 简单 签到题 java
1513 仅含 1 的子串数 中等 等差数列求和 java
1514 概率最大的路径 中等 Dijkstra java
1515 服务中心的最佳位置 困难 证明凸函数,三分夹逼 java
1518 换酒问题 简单 签到题 java
1519 子树中标签相同的节点数 中等 邻接表,DFS java
1521 找到最接近目标值的函数值 困难 利用与运算性质以及结果集数据量限制 java
1544 整理字符串 简单 1.模拟 2.栈 3.递归 java
1545 找出第 N 个二进制字符串中的第 K 位 中等 溯源,可递归. java
1599 经营摩天轮的最大利润 中等 模拟 java
1606 找到处理最多请求的服务器 困难 以模拟的前提下通过busy优先队列和available红黑树减少全服务器的遍历操作. java
1775 通过最少操作次数使数组的和相等 中等 模拟 java
1969 数组元素的最小非零乘积 中等 寻找数学规律吧,另外别忘了快速幂 java
2475 数组中不等三元组的数目 简单 1.暴力 2.数学+哈希 java
3169 无需开会的工作日 中等 1.模拟 java
3175 找到连续赢 K 场比赛的第一位玩家 中等 1.模拟 2.找规律 java
3254 长度为 K 的子数组的能量值 I 中等 rust
3255 长度为 K 的子数组的能量值 II 中等 rust
3256 放三个车的价值之和最大 I 中等 rust
3257 放三个车的价值之和最大 II 困难 rust
3264 K 次乘运算后的最终数组 I 简单 简单 rust
3265 统计近似相等数对 I 中等 暴力 rust
3266 K 次乘运算后的最终数组 II 困难 快速幂 + 堆 + 贪心 PS:第一轮运算不要取模,不然G rust
3270 求出数字答案 简单 简单暴力 java
3271 哈希分割字符串 中等 简单模拟 java
3272 统计好整数的数目 困难 枚举 + 排列组合 java
3273 对 Bob 造成的最少伤害 困难 数学分析 java
3274 检查棋盘方格颜色是否相同 简单 简单水题 java
3289 数字小镇中的捣蛋鬼 简单 简单水题 java
3290 最高乘法得分 简单 简单DP java
面试题16.18 模式匹配 中等 递归,枚举,剪枝,边界 java
面试题17.16 按摩师 简单 基本DP题,可当入门题 java
面试题51 数组中的逆序对 困难(?) 树状数组 或 归并法 java
LCP 33 蓄水 简单(?中等) 1.暴力枚举 2.优先队列+贪心 java
LCP 80 生物进化录 中等 1.遍历树 2.规律 java

About

acm practice after graduated from collage

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published