- 两数之和:给定一个整数数组
nums
和目标值target
,找出数组中和为target
的两个数。1 - 两数相加:给出两个用链表表示的非负整数,计算它们的和,并以新的链表形式返回。3
- 无重复字符的最长子串:找出给定字符串中不含有重复字符的最长子串的长度。3
- 寻找两个有序数组的中位数:给定两个有序数组,找出它们的中位数。3
- 最长回文子串:在给定字符串中找出最长的回文子串。1
- 盛最多水的容器:给定一个整数数组,找出能够持有最水的容器的尺寸。1
- 三数之和:找出数组中三个数的和为0的所有三元组。
- 删除链表的倒数第N个节点:删除链表中倒数第N个节点。
- 有效的括号:判断给定的字符串是否是有效的括号序列。
- 合并两个有序链表:合并两个有序链表,使合并后的链表也是有序的。
- 正则表达式匹配:实现一个正则表达式匹配,包括'.'和'*'两种特殊字符。
- 电话号码的字母组合:给定一个数字字符串,生成所有可能的字母组合。
- 合并K个排序链表:合并K个有序链表,使合并后的链表也是有序的。
- 最长有效括号:找到最长的有效括号子串。
- 搜索旋转排序数组:在一个旋转的有序数组中搜索一个元素。
- 在排序数组中查找元素的第一个和最后一个位置:给定一个排序数组和一个目标值,找到目标值在数组中的起始和结束位置。
- 组合总和:找出所有可能的组合,使得这些数字加起来等于给定的总和。
- 接雨水:给定一个高度数组,计算可以接住的雨水量。
- 全排列:生成所有可能的排列。
- 旋转图像:将一个 NxN 的图像顺时针旋转90度。
- 字母异位词分组:将一个字符串列表分组,使得同一组内的字符串是字母异位词。
- 最大子序和:找到一个连续的子数组,使得其和最大。
- 跳跃游戏:判断给定的数组是否可以从左到右跳一遍。
- 颜色分类:使用原地算法对一个数组进行排序,使得相同颜色的元素相邻。
- 最小覆盖子串:找到包含所有字符的最短子串。
- 柱状图中最大的矩形:在一个柱状图中找到面积最大的矩形。
- 子集:列出集合的所有子集。
- 单词搜索:在一个二维字母网格中,找出是否存在一条路径,使得路径上的字母按字典顺序排列。
- 二叉树的中序遍历:实现二叉树的中序遍历。
- 不同的二叉搜索树:生成所有可能的二叉搜索树。
-
下一个排列:实现下一个更大排列的算法。
-
最长递增子序列:找出最长递增子序列的长度。
-
合并无重叠区间:合并给定的无重叠区间。
-
最小区间:找到包含所有点的最小区间。
-
搜索插入位置:在一个排序数组中找到给定数字的插入位置。
-
有效的数独:判断一个数独是否有效。
-
判断是否为子序列:判断一个字符串是否是另一个字符串的子序列。
-
Kth Smallest Element in BST:在二叉搜索树中找到第k小的元素。
-
组合总和 II:找出所有可能的组合,使得这些数字加起来等于给定的总数,且每个数字只能使用一次。
-
买卖股票的最佳时机 II:在一个允许多次买卖的股票市场中,计算最大利润。
-
缺失的第一个正数:在一个整数数组中,找到第一个缺失的正整数。
-
接雨水:计算一个高度数组中可以接住的雨水量。
-
字符串转换整数 (atoi):实现一个将字符串转换为整数的函数。
-
翻转图像:水平翻转给定的二进制图像。
-
跳跃游戏 II:给定一个可以跳的步数,找出从开始到结束的最少跳跃次数。
-
全排列:生成所有可能的排列。
-
LRU缓存机制:实现一个LRU(最近最少使用)缓存。
-
最长连续序列:找出最长的连续序列。
-
字母异位词分组:将一个字符串列表分组,使得同一组内的字符串是字母异位词。
-
Pow(x, n):实现快速幂运算。
-
N皇后:在一个N×N的棋盘上放置N个皇后,使得它们互不攻击。
-
N皇后 II:计算在N×N的棋盘上放置N个皇后的解决方案数。
-
最大子序和:找到一个连续的子数组,使得其和最大。
-
螺旋矩阵:按照螺旋顺序遍历矩阵。
-
跳跃游戏:判断给定的数组是否可以从左到右跳一遍。
-
合并区间:合并重叠的区间。
-
插入位置的数目:计算一个数字可以插入到排序数组的位置数。
-
长度最小的子数组:找到使得数组和大于等于给定值的最短子数组。
-
螺旋矩阵 II:给定一个数字n,生成一个n*n的螺旋矩阵。
-
第k个排列:找出第k个排列。
-
旋转链表:将一个链表右旋k位后返回。
-
不同路径:在一个网格中,计算从左上角到右下角的不同路径数。
-
股票的最大利润:在一个允许一次交易的股票市场中,计算最大利润。
-
最小路径和:在网格中找到从左上角到右下角的最小路径和。
-
有效数字:判断一个字符串是否为有效数字。
-
加一:给定一个非负整数,将其加一。
-
文本左右对齐:将给定的文本字符串左右对齐到指定的宽度。
-
文本转整数 (atoi):实现一个将字符串转换为整数的函数。
-
x 的平方根:实现一个函数,返回x的整数平方根。
-
爬楼梯:计算爬到楼梯顶部的走法数。
-
简化路径:简化一个文件系统中的路径。
-
编辑距离:计算将一个字符串转换为另一个字符串的最少操作数。
-
矩阵置零:给定一个矩阵,将所有包含0的行和列置零。
-
搜索二维矩阵:在一个二维排序矩阵中搜索一个元素。
-
颜色分类:使用原地算法对一个数组进行排序,使得相同颜色的元素相邻。
-
最小覆盖子串:找到包含所有字符的最短子串。
-
组合:根据给定的n和k,生成所有可能的组合。
-
子集:列出集合的所有子集。
-
单词搜索:在一个二维字母网格中,找出是否存在一条路径,使得路径上的字母按字典顺序排列。
-
删除排序数组中的重复项 II:在一个排序数组中删除重复项,允许最多有两个相同的元素。
-
搜索旋转排序数组 II:在一个旋转的有序数组中搜索一个元素,可能包含重复元素。
-
柱状图中最大的矩形:在一个柱状图中找到面积最大的矩形。
-
删除排序链表中的重复元素:删除排序链表中的重复元素。
-
相似字符串组:找出所有相似字符串的分组。
-
最大矩形:在一个二维数组中找到最大矩形的面积。
-
分割链表:根据给定的值x,将链表分割成两部分。
-
扰乱字符串:判断一个字符串是否可以通过重排列得到另一个字符串。
-
合并两个有序数组:合并两个有序数组,不需要额外空间。
-
格雷编码:生成n位格雷码序列。
-
解码方法:给定一个经过编码的字符串,返回它解码后的字符串。
-
在线二叉搜索树:实现一个在线的二叉搜索树。
-
反转链表 II:反转链表的一部分。
-
3Sum with Multiplicity:计算数组中满足条件的三元组的数量。
-
二叉树的中序遍历:实现二叉树的中序遍历。
-
不同的二叉搜索树 II:生成所有可能的二叉搜索树,并返回它们的根节点。
-
不同的二叉搜索树:计算给定节点数的二叉搜索树的个数。
-
交错字符串:判断通过交错两个字符串的字符能否形成一个新的字符串。
-
验证二叉搜索树:检查一个二叉树是否为有效的二叉搜索树。
-
二叉树的右视图:给定一棵二叉树,想象自己从右侧观察这棵树,返回从右到左的节点值序列。
-
相等树:判断两棵树是否结构相同,并且节点值相等。