Coding

  • [Leetcode 3] 无重复字符的最长子串

    [Leetcode 3] 无重复字符的最长子串

    找出其中不含有重复字符的 最长子串的长度。

  • [Leetcode 4] 两个排序数组的中位数

    [Leetcode 4] 两个排序数组的中位数

    找出并返回这两个升序数组的中位数 。

    Hard高频#二分搜索
  • [Leetcode 5] 最长回文子串

    [Leetcode 5] 最长回文子串

    找字符串 s 中最长的回文子串。

  • [Leetcode 11] 盛最多水的容器

    [Leetcode 11] 盛最多水的容器

    找出数组 height中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

  • [Leetcode 14] 最长公共前缀

    [Leetcode 14] 最长公共前缀

    查找字符串数组中的最长公共前缀。

    Easy高频#字符串
  • [Leetcode 17] 电话号码的字母组合

    [Leetcode 17] 电话号码的字母组合

    字符串能表示的所有字母组合

  • [Leetcode 18] 四数之和

    [Leetcode 18] 四数之和

    返回满足条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] 

    Medium高频#双指针#排序
  • [Leetcode 19] 删除链表的倒数第 N 个节点

    [Leetcode 19] 删除链表的倒数第 N 个节点

    删除链表的倒数第 n 个节点

    Medium高频#双指针#链表
  • [Leetcode 20] 有效的括号

    [Leetcode 20] 有效的括号

    判断括号字符串是否有效。

    Easy高频#字符串#
  • [Leetcode 21] 合并两个有序链表

    [Leetcode 21] 合并两个有序链表

    将两个升序链表合并为一个新的升序链表并返回

    Easy高频#链表
  • [Leetcode 23] 合并 K 个升序链表

    [Leetcode 23] 合并 K 个升序链表

    将所有升序链表合并到一个升序链表中

  • [Leetcode 25] K 个一组翻转链表

    [Leetcode 25] K 个一组翻转链表

    每 k 个节点一组进行翻转,返回修改后的链表。

  • [Leetcode 32] 最长有效括号

    [Leetcode 32] 最长有效括号

    找出最长有效(格式正确且连续)括号子串的长度

    Hard高频#字符串
  • [Leetcode 33] 搜索旋转排序数组

    [Leetcode 33] 搜索旋转排序数组

    在旋转后的数组中找到target的index

    Medium高频#二分搜索
  • [Leetcode 34] 在排序数组中查找元素的第一个和最后一个位置

    [Leetcode 34] 在排序数组中查找元素的第一个和最后一个位置

    找出给定目标值在排序数组中的开始位置和结束位置。

  • [Leetcode 39]  组合和

    [Leetcode 39] 组合和

    给定无重复正整数数组 candidates,每个数可重复使用,返回所有和为 target 的不重复组合。

  • [Leetcode 42] 接雨水

    [Leetcode 42] 接雨水

    n 个柱子,下雨之后能接多少雨水。

  • [Leetcode 44] 通配符匹配

    [Leetcode 44] 通配符匹配

    匹配字符串 (s) 和字符模式 (p), 支持 '?' 和 '*' 

  • [Leetcode 46] 全排列

    [Leetcode 46] 全排列

    给定一个不含重复数字的数组 nums,返回其所有可能的全排列 。

    Medium#回溯
  • [Leetcode 55] 跳跃游戏

    [Leetcode 55] 跳跃游戏

    给定数组 nums,nums[i] 表示从位置 i 最多可以往右跳多少步。从0 出发,能不能到达n-1。

  • [Leetcode 62] 不同路径

    [Leetcode 62] 不同路径

    位于网格左上角的机器人总共有多少条不同的路径达到网格的右下角

  • [Leetcode 72] 编辑距离

    [Leetcode 72] 编辑距离

    word1 转换成 word2 所需的最少操作数

    Hard高频#动态规划
  • [Leetcode 79] 单词搜索

    [Leetcode 79] 单词搜索

    word 是否存在于字母网格中

    Medium#回溯
  • [Leetcode 83] 删除排序链表中的重复元素

    [Leetcode 83] 删除排序链表中的重复元素

    删除已排序的链表中所有重复的元素

  • [Leetcode 84] 柱状图中最大的矩形

    [Leetcode 84] 柱状图中最大的矩形

    柱状图能够勾勒出来的矩形的最大面积。

  • [Leetcode 88] 合并两个有序数组

    [Leetcode 88] 合并两个有序数组

    合并两个按非递减顺序排列的整数数组

    Easy高频#双指针
  • [Leetcode 92] 反转链表II

    [Leetcode 92] 反转链表II

    反转从位置left到位置right之间的链表节点

    Medium高频#链表
  • [Leetcode 101] 对称二叉树

    [Leetcode 101] 对称二叉树

    给定一个二叉树的根节点root,检查它是否轴对称。

  • [Leetcode 102] 二叉树的层序遍历

    [Leetcode 102] 二叉树的层序遍历

    逐层地,从左到右访问二叉树的所有节点

    Medium高频#二叉树#DFS#BFS
  • [Leetcode 105] 从前序与中序遍历序列构造二叉树

    [Leetcode 105] 从前序与中序遍历序列构造二叉树

    给定二叉树的preorder 和 inorder 数组,构造出二叉树并返回其根节点。

  • [Leetcode 116] 填充每个节点的下一个右侧节点指针

    [Leetcode 116] 填充每个节点的下一个右侧节点指针

    给 完美二叉树 的所有节点填充一个指向右侧节点的next指针

    Medium高频#二叉树#BFS
  • [Leetcode 121] 买卖股票的最佳时机

    [Leetcode 121] 买卖股票的最佳时机

    一次买卖的最大利润

  • [Leetcode 122] 买卖股票的最好时间 II

    [Leetcode 122] 买卖股票的最好时间 II

    可进行无限次交易的最大利润

  • [Leetcode 123] 买卖股票的最佳时机 III

    [Leetcode 123] 买卖股票的最佳时机 III

    最多进行两次交易的最大利润

  • [Leetcode 124] 二叉树中的最大路径和

    [Leetcode 124] 二叉树中的最大路径和

    二叉树中任意两节点之间路径的最大和,,路径不要求经过根节点。

    Hard高频#二叉树#DFS
  • [Leetcode 126] 单词接龙 II

    [Leetcode 126] 单词接龙 II

    所有从beginWord转化到endWord的最短转换序列

  • [Leetcode 128] 最长连续序列

    [Leetcode 128] 最长连续序列

    数组中最长连续整数序列的长度

  • [Leetcode 138] 随机链表的复制

    [Leetcode 138] 随机链表的复制

    深拷贝带随机指针的链表

    Medium高频#链表
  • [Leetcode 140]单词拆分 II

    [Leetcode 140]单词拆分 II

    给定字符串 s 和词典 wordDict,返回所有能把 s 拆成词典单词的句子。

  • [Leetcode 143] 重排链表

    [Leetcode 143] 重排链表

    按 L0 → Ln → L1 → Ln-1 → ... 的顺序重新连接链表

  • [Leetcode 146] LRU 缓存

    [Leetcode 146] LRU 缓存

    设计并实现 LRU 缓存,get 和 put 必须O(1) 时间

  • [Leetcode148] 链表排序

    [Leetcode148] 链表排序

    给出链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。

  • [Leetcode152]  最大乘积子数组

    [Leetcode152] 最大乘积子数组

    给定整数数组 nums,返回乘积最大的非空连续子数组的乘积。

  • [Leetcode 160] 相交链表

    [Leetcode 160] 相交链表

    找出两个链表的相交的起始节点。

  • [Leetcode 171] Excel 列名转换为数字

    [Leetcode 171] Excel 列名转换为数字

    将 Excel 列名称转换为对应的列号。

  • [Leetcode 179] 最大数

    [Leetcode 179] 最大数

    重新排列数组中每个数的顺序,组成最大的整数。

  • [Leetcode 200] 岛屿数量

    [Leetcode 200] 岛屿数量

    网格中被水(0)包围的岛屿的数量

    Medium高频#DFS#BFS#并查集
  • [Leetcode 204] 质数计数

    [Leetcode 204] 质数计数

    给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。

  • [Leetcode 206] 反转链表

    [Leetcode 206] 反转链表

    反转整个单链表

  • [Leetcode 208] 实现 Trie

    [Leetcode 208] 实现 Trie

    实现 Trie 类:初始化、插入字符串 、检索、前缀检索

  • [Leetcode 227] 基础计算器 II

    [Leetcode 227] 基础计算器 II

    给定一个只包含非负整数、空格,以及 + - * / 的字符串表达式,计算它的值。

    Medium高频#
  • [Leetcode 236] 二叉树的最近公共祖先

    [Leetcode 236] 二叉树的最近公共祖先

    给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

    Medium高频#二叉树#DFS#BFS
  • [Leetcode 239] 滑动窗口最大值

    [Leetcode 239] 滑动窗口最大值

    大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧,返回 滑动窗口中的最大值 。

  • [Leetcode 240] 搜索二维矩阵 II

    [Leetcode 240] 搜索二维矩阵 II

    搜索 m x n 的排序矩阵中的一个目标值 target 。

  • [Leetcode 251] 展开二维向量

    [Leetcode 251] 展开二维向量

    给定一个二维数组 vec,实现一个迭代器,支持next 和 hasNext 两种操作。

  • [Leetcode 300]  最长递增子序列

    [Leetcode 300] 最长递增子序列

    最长严格递增 子序列的长度

  • [Leetcode 398]  随机数索引

    [Leetcode 398] 随机数索引

    给定一个可能含有 重复元素 的整数数组 nums。随机等概率地输出一个值等于 target 的索引。

  • [Leetcode 403]  青蛙过河

    [Leetcode 403] 青蛙过河

    给定递增数组 stones 表示石子位置,青蛙能否在「下一跳距离与上一跳之差不超过 1」的约束下,从第一块石子跳到最后一块石子。

  • [Leetcode 473]  火柴拼正方形

    [Leetcode 473] 火柴拼正方形

    能不能用一组长度不一样的火柴拼成一个正方形。

  • [Leetcode 560]  和为 K 的子数组

    [Leetcode 560] 和为 K 的子数组

    统计整数数组 nums 中有多少个连续子数组的元素和正好等于 k

    Medium高频#Prefix#哈希
  • [Leetcode 729]  日程安排 1

    [Leetcode 729] 日程安排 1

    实现一个日历类,支持 book(start, end)。如果新事件和已有事件没有重叠,则插入并返回 True;否则不插入,返回 False。

  • [Leetcode 734]  句子相似性

    [Leetcode 734] 句子相似性

    给定两个句子 sentence1、sentence2,以及一组相似单词对 similarPairs,判断两个句子是否相似。

    Easy高频#哈希
  • [Leetcode 737]  句子相似性  II

    [Leetcode 737] 句子相似性  II

    给定两个句子和一组有具有传递性的相似词对,判断两个句子是否相似。

    Medium高频#并查集#DFS#BFS
  • [Leetcode 772]   基础计算器 III 

    [Leetcode 772] 基础计算器 III 

    给定一个合法表达式字符串,包含非负整数、+ - * /、空格以及括号 (、),计算表达式结果。

  • [Leetcode 986]  区间列表的交集

    [Leetcode 986] 区间列表的交集

    给定两个有序且内部不重叠的区间列表,要求返回这两个区间列表的所有交集。

    Medium高频#区间#双指针
  • [Leetcode 1169]  无效交易

    [Leetcode 1169] 无效交易

    给定一组交易记录,两条无效规则:金额超过 1000,或者同一个人在 60 分钟内在不同城市发生交易。找出所有无效交易。

  • [Leetcode 1813] 句子相似性 III

    [Leetcode 1813] 句子相似性 III

    给定两个英文句子,判断能否通过在其中一个句子的任意位置插入一段句子,使两个句子变得完全相同。

    Medium高频#双指针#队列