校招LeetCode精选题目

不管是春招还是秋招,校招生是避免不了刷题操作的,今天我总结了一下自己秋招过程对leetcode题目进行分类并针对性练习的过程。

一些基本的数据结构练习,建议结合大话数据结构这本书食用。里面有一部分语言特性,注意总结与分析,有助于加深数据结构基础的理解。
基本数据结构总结
推荐题目:

  • LeetCode 1. Two Sum
  • LeetCode 187. Repeated DNA Sequences
  • LeetCode 706. Design HashMap
  • LeetCode 652. Find Duplicate Subtrees
  • LeetCode 560. Subarray Sum Equals K
  • LeetCode 547. Friend Circles
  • LeetCode 684. Redundant Connection
  • LeetCode 692. Top K Frequent Words
  • LeetCode 295. Find Median from Data Stream
  • LeetCode 352. Data Stream as Disjoint Intervals

二分查找一般是在单调有序的数组上操作,而实际的变体却是很灵活的。例如lc287题就是一种经典的应用,关于二分内容,推荐下面几道题目,扣好边界是关键。
二分专题

  • Leetcode 69. sqrt x
  • Leetcode 35. Search insert position
  • LeetCode 34. Find First and Last Position of Element in Sorted Array
  • LeetCode 74. Search a 2D Matrix
  • LeetCode 153. Find Minimum in Rotated Sorted Array
  • LeetCode 33. Search in Rotated Sorted Array
  • LeetCode 278. First Bad Version
  • LeetCode 162. Find Peak Element
  • LeetCode 287. Find the Duplicate Number
  • LeetCode 275. H-Index II

关于链表,考点居多,但是常考的题目固定,校招过程中,遇到的更多的是逆置等问题,这里总结了几道题目,个人建议将链表排序这部分着重复习,例如链表快排,链表插排,链表归并排,都考过,尤其是字节的面试官,非常喜欢考链表的题目,这部分题目,扣好细节即可。
链表专题
推荐题目:

  • LeetCode 19. Remove Nth Node From End of List
  • LeetCode 237. Delete Node in a Linked List
  • LeetCode 83. Remove Duplicates from Sorted List
  • LeetCode 61. Rotate List
  • LeetCode 24. Swap Nodes in Pairs
  • LeetCode 206. Reverse Linked List
  • LeetCode 92. Reverse Linked List II
  • LeetCode 160. Intersection of Two Linked Lists
  • LeetCode 142. Linked List Cycle II
  • LeetCode 148. Sort List

树与二叉树同样是字节面试官喜欢考的内容,因为这一部分内容能够很好的验证面试者对递归操作得理解与掌握。内容以二叉树居多,二叉树的几种遍历方法需要烂熟于心(非递归版本)
树专题
推荐题目:

  • LeetCode 98. Validate Binary Search Tree
  • LeetCode 101. Symmetric Tree
  • LeetCode 94. Binary Tree Inorder Traversal
  • LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
  • LeetCode 102. Binary Tree Level Order Traversal
  • LeetCode 236. Lowest Common Ancestor of a Binary Tree
  • LeetCode 297. Serialize and Deserialize Binary Tree
  • LeetCode 543. Diameter of Binary Tree
  • LeetCode 124. Binary Tree Maximum Path Sum
  • LeetCode 173. Binary Search Tree Iterator

字符串处理是常见题目,这部分不多说,主要空格和逗号,属于一些常规题目,简单推荐几道,可以包含几种常见的类型了
字符串处理
推荐题目:

  • LeetCode 38. Count and Say
  • LeetCode 49. Group Anagrams
  • LeetCode 151. Reverse Words in a String
  • LeetCode 165. Compare Version Numbers
  • LeetCode 929. Unique Email Addresses
  • LeetCode 5. Longest Palindromic Substring
  • LeetCode 6. ZigZag Conversion
  • LeetCode 3. Longest Substring Without Repeating Characters
  • LeetCode 208. Implement Trie (Prefix Tree)
  • LeetCode 273. Integer to English Words

从这开始,进入虐心模式,这部分题目我刷了整整两天,刷的清爽的不得了。主要是深度优先搜索与回溯,这部分时间复杂度较大,经常难以找到合适的思路。
回溯法与深度优先搜索
推荐题目:

  • LeetCode 17. Letter Combinations of a Phone Number
  • LeetCode 79. Word Search
  • LeetCode 46. Permutations
  • LeetCode 47. Permutations II
  • LeetCode 78. Subsets
  • LeetCode 90. Subsets II
  • LeetCode 216. Combination Sum III
  • LeetCode 52. N-Queens II
  • LeetCode 37. Sudoku Solver
  • LeetCode 473. Matchsticks to Square

这部分题目涉及到一些较为复杂的数据结构,
滑动窗口、双指针与单调队列/栈
推荐题目:

  • LeetCode 167. Two Sum II - Input array is sorted
  • LeetCode 88. Merge Sorted Array
  • LeetCode 26. Remove Duplicates from Sorted Array
  • LeetCode 76. Minimum Window Substring
  • LeetCode 32. Longest Valid Parentheses
  • LeetCode 155. Min Stack
  • LeetCode 42. Trapping Rain Water
  • LeetCode 84. Largest Rectangle in Histogram
  • LeetCode 239. Sliding Window Maximum
  • LeetCode 918. Maximum Sum Circular Subarray

对于我来说,最难的部分,但是学会之后就会很舒服。DP日渐成为各大公司面试的必考点。通过DP可以有效的减少时间复杂度与重复计算。
动态规划
推荐题目:

  • LeetCode 53. Maximum Subarray
  • LeetCode 120. Triangle
  • LeetCode 63. Unique Paths II
  • LeetCode 91. Decode Ways
  • LeetCode 198. House Robber
  • LeetCode 300. Longest Increasing Subsequence
  • LeetCode 72. Edit Distance
  • LeetCode 518. Coin Change 2
  • LeetCode 664. Strange Printer
  • LeetCode 10. Regular Expression Matching

以上,是我刷的部分leetcode题目,偶尔还会打打周赛。另外,剑指offer是必刷的。个人比较推荐牛客网的剑指offer题目。最后,祝各位同学面试顺利,拿到满意的offer

二分查找
  • 二分查找[牛客]:LC上找不到一模一样的。

  • 求平方根

滑动窗口
  • 滑动窗口的最大值

  • 滑动窗口的中位数*

  • 最长不含重复字符的子字符串

数组
  • 合并两个有序数组

  • 数组中出现超过一半的数*

  • 岛屿的最大面积

  • 接雨水

  • 螺旋矩阵

  • 逆序对*

链表
  • 反转链表

  • k个一组反转链表

  • 删除排序链表中的重复元素

  • 环形链表

  • 两个链表的第一个公共节点

  • 合并有序链表

  • 链表求和

  • 回文链表

  • 复制带随机指针的链表

二叉树
  • 二叉树的深度

  • 之字形打印二叉树

  • 二叉搜索树的第 k 大节点

  • 二叉树的最近公共祖先

  • 二叉树中和为某一值的路径*

  • 二叉树的最大路径和

  • 二叉树的右视图*

TopK
  • 最小的k个数

  • 数组中的第K个最大元素

设计题
  • 最小栈

  • 两个栈实现队列

  • LRU缓存机制

动态规划
  • 青蛙跳台阶

  • 最长上升子序列

  • 最长公共子序列

  • 编辑距离*

  • 零钱兑换2*

其他
  • 翻转单词顺序

  • 二进制中1的个数*

  • 颠倒二进制位*

  • 数据流中的中位数*

  • 复原IP地址

系列题
X数之和系列:
  • 两数之和

  • 三数之和

  • 最接近的三数之和*

股票系列:

这系列还有4,有余力的同学可以做做

  • 买卖股票的最佳时机1

  • 买卖股票的最佳时机2

  • 买卖股票的最佳时机3

括号系列:

注意解法上的优化,这系列要搞定最优解

  • 有效括号

  • 最长有效括号

各公司常考题补充

下方列表,展示的是除了上面提到的题目以外,各自还常考的题目。

字节(待验证)
  • 单词搜索

  • 重排链表

  • 验证栈序列

  • 字典序排数

  • 寻找两个正序数组的中位数

  • 剪绳子I

  • 剪绳子II

  • 最长回文子串

  • 下一个数

你可能感兴趣的:(校招,leetcode,散列表,算法)