算法和数据结构记录

💓:非常值得看

刷题小记

题目

题号 题目(中) Link 难度
0001 两数之和 C++ easy
0002 两数相加 C++ medium
0003 无重复字符最长子串 C++ medium
0004 寻找两个有序数组的中位数 C++ hard
0005 最长回文子串 C++ medium
0006 Z 字形变换 C++ medium
0007 整数反转 C++ easy
0008 字符串转换整数 (atoi) C++ medium
0009 回文数 C++ easy
0011 盛最多水的容器 C++ medium
0014 最长公共前缀 C++ easy
0015 三数之和 C++ medium
0018 四数之和 C++ medium
0019 删除链表的倒数第N个节点 C++ medium
0020 有效的括号 C++ easy
0021 合并两个有序链表 C++ easy
0023 合并K个排序链表 C++ hard
0026 删除排序数组中的重复项 C++ easy
0027 移除元素 C++ easy
0028 实现 strStr() C++ easy
0032 最长有效括号 C++ hard
0033 搜索旋转排序数组 C++ medium
0034 在排序数组中查找元素的第一个和最后一个位置 C++ medium
0036 有效的数独 C++ medium
0042 接雨水 C++ hard
0043 字符串相乘 C++ medium
0044 通配符匹配 C++ hard
0049 字母异位词分组 C++ medium
0053 最大子序和 C++ easy
0054 螺旋矩阵 C++ midium
0059 螺旋矩阵II C++ midium
0060 第 k 个排列 C++ hard
0061 旋转链表 C++ medium
0062 不同路径 C++ medium
0063 不同路径II C++ medium
0066 加一 C++ easy
0067 二进制求和 C++ easy
0069 x 的平方根 C++ easy
0070 爬楼梯 C++ easy
0071 简化路径 C++ medium
0074 搜索二维矩阵 C++ medium
0078 子集 C++ medium
0081 搜索旋转排序数组II C++ medium
0082 删除排序链表中的重复元素 II C++ medium
0083 删除排序链表中的重复元素 C++ medium
0088 合并两个有序数组 C++ easy
0092 反转链表 II C++ medium
0093 复原IP地址 C++ medium
0094 二叉树的中序遍历 C++ medium
0095 不同的二叉搜索树 II C++ medium
0096 不同的二叉搜索树 C++ medium
0098 验证二叉搜索树 C++ medium
0099 恢复二叉搜索树 C++ hard
0101 对称二叉树 C++ medium
0102 二叉树的层次遍历 C++ medium
0104 二叉树的最大深度 C++ medium
0105 从前序与中序遍历序列构造二叉树 C++ medium
0107 二叉树的层次遍历 II C++ easy
0108 将有序数组转换为二叉搜索树 C++ easy
0111 二叉树的最小深度 C++ easy
0112 路径总和 C++ easy
0113 路径总和 II C++ easy
0120 三角形最小路径和 C++ medium
0121 买卖股票的最佳时机 C++ medium
0122 买卖股票的最佳时机II C++ medium
0123 买卖股票的最佳时机 III C++ hard
0124 二叉树中的最大路径和 C++ hard
0128 最长连续序列 C++ hard
0129 求根到叶子节点数字之和 C++ medium
0136 只出现一次的数字 C++ easy
0137 只出现一次的数字II C++ medium
0141 环形链表 C++ easy
0142 环形链表II C++ medium
0144 二叉树的前序遍历 C++ medium
0145 二叉树的后序遍历 C++
0146 LRU缓存机制 C++ medium
0148 排序链表 C++ medium
0151 翻转字符串里的单词 C++ medium
0155 最小栈 C++ easy
0159 至多包含两个不同字符的最长子串 C++ medium
0160 相交链表 C++ easy
0167 两数之和II-输入有序数组 C++ easy
0169 求众数 C++ easy
0174 地下城游戏 C++ easy
0179 最大数 C++ medium
0188 买卖股票的最佳时机 IV C++ hard
0189 旋转数组 C++ easy
0191 位1的个数 C++ easy
0202 快乐数 C++ easy
0203 移除链表元素 C++ easy
0205 同构字符串 C++ easy
0206 反转链表 C++ easy
0211 最大正方形 C++ medium
0215 数组中的第K个最大元素 C++ medium
0217 存在重复元素 C++ easy
0219 存在重复元素II C++ easy
0220 存在重复元素III C++ medium
0221 最大正方形 C++ medium
0226 翻转二叉树 C++ easy
0229 求众数II C++ medium
0231 2的幂 C++ easy
0234 回文链表 C++ easy
0235 二叉搜索树的最近公共祖先 C++ easy
0236 二叉树的最近公共祖先 C++ medium
0237 删除链表中的节点 C++ easy
0240 搜索二维矩阵II C++ medium
0252 会议室 C++ easy
0257 二叉树的所有路径 C++ easy
0260 只出现一次的数字 III C++ medium
0263 丑数 C++ easy
0264 丑数II C++ medium
0298 二叉树最长连续序列 C++ medium
0300 最长上升子序列🚧 C++ medium
0309 最佳买卖股票时机含冷冻期 C++ medium
0314 二叉树的垂直遍历 C++ medium
0319 灯泡开关 C++ medium
0322 零钱兑换 C++ medium
0328 奇偶链表 C++ medium
💓 0330 按要求补齐数组 C++ hard
0349 两个数组的交集 C++ easy
0350 两个数组的交集 II C++ easy
0354 俄罗斯套娃信封问题 C++ hard
0380 常数时间插入、删除和获取随机元素 C++ medium
0387 字符串中的第一个唯一字符 C++ easy
0410 分割数组的最大值 C++ hard
0414 第三大的数 C++ easy
0424 替换后的最长重复字符 C++ medium
0436 寻找右区间 C++ medium
0442 数组中重复的数据 C++ medium
0445 两数相加 II C++ medium
0454 四数相加 II C++ medium
0459 重复的子字符串 C++ easy
0485 最大连续1的个数 C++ easy
0495 提莫中毒 C++ medium
0509 斐波那契数 C++ easy
0516 最长回文子序列 C++ medium
0518 零钱兑换II C++ medium
0543 二叉树的直径 C++ easy
0547 朋友圈 C++ medium
0549 二叉树中最长的连续序列 C++ medium
0557 反转字符串中的单词 III C++ easy
0559 N叉树的最大深度 C++ easy
0567 字符串的排列 C++ medium
0605 种花问题 C++ easy
0599 两个列表的最小索引总和 C++ easy
0647 回文子串 C++ medium
0652 寻找重复的子树 C++ medium
0673 最长递增子序列的个数 C++ medium
0674 最长连续递增序列 C++ easy
0687 最长同值路径 C++ easy
0695 岛屿的最大面积 C++ medium
0705 设计哈希集合 C++ easy
0706 设计哈希映射 C++ easy
0707 设计链表 C++ medium
0718 最长重复子数组 C++ medium
0724 寻找数组的中心索引 C++ easy
0747 至少是其他数字两倍的最大数 C++ easy
0771 宝石与石头 C++ easy
0796 旋转字符串 C++ medium
0801 使序列递增的最小交换次数 C++ medium
0836 矩形重叠 C++ easy
0885 螺旋矩阵 III C++ medium
0887 鸡蛋掉落 C++ hard
0905 按奇偶排序数组 C++ easy
0912 排序数组 C++ medium
💓 0918 环形子数组的最大和 C++ medium
0946 验证栈序列 C++ medium
0969 煎饼排序 C++ medium
0987 二叉树的垂序遍历 C++ medium
0995 K 连续位的最小翻转次数 C++ hard
1004 最大连续 1 的个数III C++ medium
1005 K 次取反后最大化的数组和 C++ easy
1012 十进制整数的反码 C++ hard
1013 总持续时间可被 60 整除的歌曲 C++ easy
1018 可被 5 整除的二进制前缀 C++ easy
1029 两地调度 C++ easy
1105 填充书架 C++ medium
1118 一月有多少天 C++ easy
1119 删除字符串中的元音 C++ easy
1281 整数的各位积和之差 C++ easy
1342 将数字变成 0 的操作次数 C++ easy
1443 收集树上所有苹果的最少时间 C++ medium
1556 千位分隔数 C++ easy
1566 重复至少 K 次且长度为 M 的模式 C++ easy

String || Math

题号 题目(中) MyWiki
0003 无重复字符最长子串 C++
0005 最长回文子串 C++
0007 整数反转 C++
0008 字符串转换整数 (atoi) C++
0009 回文数 C++
0014 最长公共前缀 C++
0020 有效的括号 C++
0043 字符串相乘 C++
0049 字母异位词分组 C++
0071 简化路径 C++
0093 复原IP地址 C++
0151 翻转字符串里的单词 C++
0387 字符串中的第一个唯一字符 C++
0459 重复的子字符串 C++
0557 反转字符串中的单词 III C++
0647 回文子串 C++
1119 删除字符串中的元音 C++

Tree

题号 题目(中) MyWiki
0094 二叉树的中序遍历 C++
0095 不同的二叉搜索树 II C++
0096 不同的二叉搜索树 C++
0098 验证二叉搜索树 C++
0099 恢复二叉搜索树 C++
0101 对称二叉树 C++
0102 二叉树的层次遍历 C++
0104 二叉树的最大深度 C++
0105 从前序与中序遍历序列构造二叉树 C++
0107 二叉树的层次遍历 II C++
0111 二叉树的最小深度 C++
0144 二叉树的前序遍历 C++
0145 二叉树的后序遍历 C++
0226 翻转二叉树 C++
0235 二叉搜索树的最近公共祖先 C++
0236 二叉树的最近公共祖先 C++
0543 二叉树的直径 C++
0559 N叉树的最大深度 C++
0652 寻找重复的子树 C++

Linked List

题号 题目(中) MyWiki
0002 两数相加 C++
0021 合并两个有序链表 C++
0023 合并K个排序链表 C++
0061 旋转链表 C++
0082 删除排序链表中的重复元素 II C++
0083 删除排序链表中的重复元素 C++
0092 反转链表 II C++
0141 环形链表 C++
0142 环形链表II C++
0148 排序链表 C++
0160 相交链表 C++
0203 移除链表元素 C++
0206 反转链表 C++
0234 回文链表 C++
0237 删除链表中的节点 C++
0328 奇偶链表 C++
0445 两数相加 II C++
0707 设计链表 C++

Sliding Window

题号 题目(中) MyWiki
0003 无重复字符最长子串 C++
0567 字符串的排列 C++
0995 K 连续位的最小翻转次数 C++
1004 最大连续 1 的个数III C++

贪心问题

题号 题目(中) MyWiki
💓 0330 按要求补齐数组 C++
0605 种花问题 C++
1005 K 次取反后最大化的数组和 C++

动态规划

题号 题目(中) MyWiki
0005 最长回文子串 C++
0032 最长有效括号 C++
0044 通配符匹配 C++
0053 最大子序和 C++
0062 不同路径 C++
0063 不同路径 C++
0070 爬楼梯 C++
0095 不同的二叉搜索树 II C++
0096 不同的二叉搜索树 C++
0120 三角形最小路径和 C++
0121 买卖股票的最佳时机 C++
0122 买卖股票的最佳时机II C++
0123 买卖股票的最佳时机 III C++
0188 买卖股票的最佳时机 IV C++
0221 最大正方形 C++
master/LeetCode/LeetCode_0263.md) easy
0264 丑数II C++
0300 最长上升子序列🚧 C++
0322 零钱兑换 C++
0410 分割数组的最大值 C++
0516 最长回文子序列 C++
0647 回文子串 C++
0718 最长重复子数组 C++
0801 使序列递增的最小交换次数 C++
0887 鸡蛋掉落 C++
1105 填充书架 C++

剑指Offer

题号 题目(中) MyWiki
面试题03 数组中重复的数字 C++
面试题04 二维数组中的查找 C++
面试题05 替换空格 C++
面试题06 从尾到头打印链表 C++
面试题07 重建二叉树 C++
面试题09 用两个栈实现队列 C++
面试题10_1 斐波那契数列 C++
面试题10_2 青蛙跳台阶问题 C++
面试题11 旋转数组的最小数字 C++
面试题12 矩阵中的路径 C++
面试题15 二进制中1的个数 C++
面试题18 删除链表的节点 C++
面试题21 调整数组顺序使奇数位于偶数前面 C++
面试题23 链表中倒数第k个节点 C++
面试题24 反转链表 C++
面试题25 合并两个排序的链表 C++
面试题26 树的子结构 C++
面试题27 二叉树的镜像 C++
面试题28 对称的二叉树 C++
面试题29 顺时针打印矩阵 C++
面试题30 包含min函数的栈 C++
面试题31 栈的压入、弹出序列 C++
面试题32_1 从上到下打印二叉树 C++
面试题32_2 从上到下打印二叉树 II C++
面试题32_3 从上到下打印二叉树 III C++
面试题33 二叉搜索树的后序遍历序列 C++

CodeForces

题号 题目(中) MyWiki
1A Theatre Square C++