leetcode top100题目和答案(面试必备)

  1. 两数之和:给定一个整数数组 nums 和目标值 target,找出数组中和为 target 的两个数。1
  2. 两数相加:给出两个用链表表示的非负整数,计算它们的和,并以新的链表形式返回。3
  3. 无重复字符的最长子串:找出给定字符串中不含有重复字符的最长子串的长度。3
  4. 寻找两个有序数组的中位数:给定两个有序数组,找出它们的中位数。3
  5. 最长回文子串:在给定字符串中找出最长的回文子串。1
  6. 盛最多水的容器:给定一个整数数组,找出能够持有最水的容器的尺寸。1
  7. 三数之和:找出数组中三个数的和为0的所有三元组。
  8. 删除链表的倒数第N个节点:删除链表中倒数第N个节点。
  9. 有效的括号:判断给定的字符串是否是有效的括号序列。
  10. 合并两个有序链表:合并两个有序链表,使合并后的链表也是有序的。
  1. 正则表达式匹配:实现一个正则表达式匹配,包括'.'和'*'两种特殊字符。
  2. 电话号码的字母组合:给定一个数字字符串,生成所有可能的字母组合。
  3. 合并K个排序链表:合并K个有序链表,使合并后的链表也是有序的。
  4. 最长有效括号:找到最长的有效括号子串。
  5. 搜索旋转排序数组:在一个旋转的有序数组中搜索一个元素。
  6. 在排序数组中查找元素的第一个和最后一个位置:给定一个排序数组和一个目标值,找到目标值在数组中的起始和结束位置。
  7. 组合总和:找出所有可能的组合,使得这些数字加起来等于给定的总和。
  8. 接雨水:给定一个高度数组,计算可以接住的雨水量。
  9. 全排列:生成所有可能的排列。
  10. 旋转图像:将一个 NxN 的图像顺时针旋转90度。
  11. 字母异位词分组:将一个字符串列表分组,使得同一组内的字符串是字母异位词。
  12. 最大子序和:找到一个连续的子数组,使得其和最大。
  13. 跳跃游戏:判断给定的数组是否可以从左到右跳一遍。
  14. 颜色分类:使用原地算法对一个数组进行排序,使得相同颜色的元素相邻。
  15. 最小覆盖子串:找到包含所有字符的最短子串。
  16. 柱状图中最大的矩形:在一个柱状图中找到面积最大的矩形。
  17. 子集:列出集合的所有子集。
  18. 单词搜索:在一个二维字母网格中,找出是否存在一条路径,使得路径上的字母按字典顺序排列。
  19. 二叉树的中序遍历:实现二叉树的中序遍历。
  20. 不同的二叉搜索树:生成所有可能的二叉搜索树。
  21. 下一个排列:实现下一个更大排列的算法。

  22. 最长递增子序列:找出最长递增子序列的长度。

  23. 合并无重叠区间:合并给定的无重叠区间。

  24. 最小区间:找到包含所有点的最小区间。

  25. 搜索插入位置:在一个排序数组中找到给定数字的插入位置。

  26. 有效的数独:判断一个数独是否有效。

  27. 判断是否为子序列:判断一个字符串是否是另一个字符串的子序列。

  28. Kth Smallest Element in BST:在二叉搜索树中找到第k小的元素。

  29. 组合总和 II:找出所有可能的组合,使得这些数字加起来等于给定的总数,且每个数字只能使用一次。

  30. 买卖股票的最佳时机 II:在一个允许多次买卖的股票市场中,计算最大利润。

  31. 缺失的第一个正数:在一个整数数组中,找到第一个缺失的正整数。

  32. 接雨水:计算一个高度数组中可以接住的雨水量。

  33. 字符串转换整数 (atoi):实现一个将字符串转换为整数的函数。

  34. 翻转图像:水平翻转给定的二进制图像。

  35. 跳跃游戏 II:给定一个可以跳的步数,找出从开始到结束的最少跳跃次数。

  36. 全排列:生成所有可能的排列。

  37. LRU缓存机制:实现一个LRU(最近最少使用)缓存。

  38. 最长连续序列:找出最长的连续序列。

  39. 字母异位词分组:将一个字符串列表分组,使得同一组内的字符串是字母异位词。

  40. Pow(x, n):实现快速幂运算。

  41. N皇后:在一个N×N的棋盘上放置N个皇后,使得它们互不攻击。

  42. N皇后 II:计算在N×N的棋盘上放置N个皇后的解决方案数。

  43. 最大子序和:找到一个连续的子数组,使得其和最大。

  44. 螺旋矩阵:按照螺旋顺序遍历矩阵。

  45. 跳跃游戏:判断给定的数组是否可以从左到右跳一遍。

  46. 合并区间:合并重叠的区间。

  47. 插入位置的数目:计算一个数字可以插入到排序数组的位置数。

  48. 长度最小的子数组:找到使得数组和大于等于给定值的最短子数组。

  49. 螺旋矩阵 II:给定一个数字n,生成一个n*n的螺旋矩阵。

  50. 第k个排列:找出第k个排列。

  51. 旋转链表:将一个链表右旋k位后返回。

  52. 不同路径:在一个网格中,计算从左上角到右下角的不同路径数。

  53. 股票的最大利润:在一个允许一次交易的股票市场中,计算最大利润。

  54. 最小路径和:在网格中找到从左上角到右下角的最小路径和。

  55. 有效数字:判断一个字符串是否为有效数字。

  56. 加一:给定一个非负整数,将其加一。

  57. 文本左右对齐:将给定的文本字符串左右对齐到指定的宽度。

  58. 文本转整数 (atoi):实现一个将字符串转换为整数的函数。

  59. x 的平方根:实现一个函数,返回x的整数平方根。

  60. 爬楼梯:计算爬到楼梯顶部的走法数。

  61. 简化路径:简化一个文件系统中的路径。

  62. 编辑距离:计算将一个字符串转换为另一个字符串的最少操作数。

  63. 矩阵置零:给定一个矩阵,将所有包含0的行和列置零。

  64. 搜索二维矩阵:在一个二维排序矩阵中搜索一个元素。

  65. 颜色分类:使用原地算法对一个数组进行排序,使得相同颜色的元素相邻。

  66. 最小覆盖子串:找到包含所有字符的最短子串。

  67. 组合:根据给定的n和k,生成所有可能的组合。

  68. 子集:列出集合的所有子集。

  69. 单词搜索:在一个二维字母网格中,找出是否存在一条路径,使得路径上的字母按字典顺序排列。

  70. 删除排序数组中的重复项 II:在一个排序数组中删除重复项,允许最多有两个相同的元素。

  71. 搜索旋转排序数组 II:在一个旋转的有序数组中搜索一个元素,可能包含重复元素。

  72. 柱状图中最大的矩形:在一个柱状图中找到面积最大的矩形。

  73. 删除排序链表中的重复元素:删除排序链表中的重复元素。

  74. 相似字符串组:找出所有相似字符串的分组。

  75. 最大矩形:在一个二维数组中找到最大矩形的面积。

  76. 分割链表:根据给定的值x,将链表分割成两部分。

  77. 扰乱字符串:判断一个字符串是否可以通过重排列得到另一个字符串。

  78. 合并两个有序数组:合并两个有序数组,不需要额外空间。

  79. 格雷编码:生成n位格雷码序列。

  80. 解码方法:给定一个经过编码的字符串,返回它解码后的字符串。

  81. 在线二叉搜索树:实现一个在线的二叉搜索树。

  82. 反转链表 II:反转链表的一部分。

  83. 3Sum with Multiplicity:计算数组中满足条件的三元组的数量。

  84. 二叉树的中序遍历:实现二叉树的中序遍历。

  85. 不同的二叉搜索树 II:生成所有可能的二叉搜索树,并返回它们的根节点。

  86. 不同的二叉搜索树:计算给定节点数的二叉搜索树的个数。

  87. 交错字符串:判断通过交错两个字符串的字符能否形成一个新的字符串。

  88. 验证二叉搜索树:检查一个二叉树是否为有效的二叉搜索树。

  89. 二叉树的右视图:给定一棵二叉树,想象自己从右侧观察这棵树,返回从右到左的节点值序列。

  90. 相等树:判断两棵树是否结构相同,并且节点值相等。

  • 33
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周盛欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值