【LeetCode & 剑指offer 刷题笔记】汇总(已完成)

2021年9月7日 8点热度 0条评论 来源: wikiwen

前言

  不知不觉就结束了自己的秋招之路,虽感觉有些艰辛但是收获很多。找工作那段时间做了很多学习笔记,这是数据结构与算法相关的一部分笔记,这一块除了复习相关教科书,还有就是刷LeetCode和《剑指offer》了。
  这段时间稍微空闲些,打算把自己之前在印象笔记上做的笔记迁移到CSDN上,供大家学习交流,自己之前也从网上学习了很多,算是回馈一下技术社区吧~
  喜欢本博客的同学欢迎给博主打赏(微信扫描下方赞赏码)或是点赞,给予我更大的动力,谢谢大家的支持(・ω・)ノ

将印象笔记保留格式迁移到CSDN的艰辛历程

日期 记录
2018.12.10 直接复制笔记到CSDN格式会乱,想到可以复制导出的html源码,但是CSDN解析html源码的功能还没加上去,已经反馈了这个问题,我要再等等这个功能,免得要过多的二次编辑。
2018.12.23 利用周末时间先写个提纲在这里,后面再补充链接。
2019.1.5 看了很多相关的帖子,了解到CSDN应该不会再开放html源码编辑的功能,所以不再指望。后来灵机一动,可以先把笔记弄到博客园(支持html源码)上,再博客搬家过来就可以了。就利用周末两天时间把自己的刷题笔记通过html源码发布到了博客园上,格式一模一样,完美~~ 然后申请了博客搬家,等待审核……
2019.1.8 CSDN博客搬家未成功,目前这个功能还有问题。已经反馈了这个问题,等待官方修复中……
2019.1.9 晚上在看博客的时候,惊喜的发现搬过来54篇(博主在博客园上总共有138篇左右),粗略看了一下,格式基本保留了,不过有些细节还是丢失了,比如高亮、代码背景等等,丑了很多,不管怎样,反馈的问题得到了及时解决,还是要给CSDN点赞的,剩下的文章继续等待中……
2019.1.11 再来看看搬家的情况,搬过来123篇,还有十几篇没搬过来(带图片的都没有搬过来),晚上有点睡不着正好链接下这篇博客中的目录,链接了搬过来的123篇,余下的看搬不搬过来吧到时候再说,有点晚了,去睡了~~
2019.1.13 等了几天都没有变化了,看来是移不过来了,把没搬过来的十几篇链接成博客园的地址算了。然后还遇到一个问题就是搬家过来的文章都没有分类,而且不能批量给这123篇文章加类别,只能一个一个加(而且试了一下,进入编辑界面,加了分类,然后格式又乱了。。。)。还遇到一个问题是本来想弄个专栏的,但是不能批量添加未分类的文章,只能一个一个添加,已经反馈了不能批量添加分类的问题,等待官方修复这个问题……

  总的来说这篇汇总已经完成了,所有笔记均已转成博客文章,并链接到这篇目录文章中了~~不过,由于csdn没有批量添加分类的功能,专栏添加文章只能一个一个添加,目前只收录了这篇汇总文章。

刷题概况

  博主刷完了《剑指offer》上的所有题目,大概70道左右,leetcode上总共有800多道题(一直在补充),博主刷了大概150道左右,对于找工作来说,这个题量差不多了,具体题量根据个人情况而定吧。《剑指offer》和LeetCode有很多类似的题,对应关系会在笔记中看到。对于LeetCode,自己之前也遇到过不知道重点刷哪些题的疑惑,后来发现官方整理了一些高频题的专栏——Top Interview Questions,我主要是刷的这三个专栏(有easy、medium、hard三个等级)上的题,上面分类整理了一些质量比较高比较经典的题,刷完很有收获,当然也结合自己的情况额外刷了一些专项练习来强化训练,比如动态规划等等。

推荐资源

刷题目录

  为了方便自己复习,我是按照类别来整理笔记的,同一题目的不同变形版本也放在一起可供比较(整理成系列)。中文题目为《剑指offer》上的题目,英文为leetcode上的,下面是所有题目(还包括一些整理的相关知识点笔记)的目录,方便大家查找:
(先把目录放在这里,后面在花时间把内容链接上)

熟悉OJ平台

  1. OJ术语
  2. 如何处理输入问题
  3. OJ编程实例(cnblogs)

数组:

  1. 1 Two Sum(系列)
  2. 57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)
  3. 3Sum(系列) + 4sum
  4. Contains Duplicate
  5. 3 数组中重复的数字(287. Find the Duplicate Number)
  6. 26 Remove Duplicates from Sorted Array
  7. 39 数组中出现次数超过一半的数字
  8. 53 数字在排序数组中出现的次数
  9. 旋转数组(189. Rotate Array)
  10. Intersection of Two Arrays(系列)
  11. 228. Summary Ranges
  12. 66 构建乘积数组(cnblogs)
  13. 21 调整数组顺序使奇数位于偶数前面
  14. 61 扑克牌中的顺子
  15. 45 把数组排成最小的数
  16. 51 数组中的逆序对
  17. Increasing Triplet Subsequence
  18. Plus One
  19. Move Zeroes
  20. Valid Sudoku
  21. Rotate Image

矩阵

  1. 4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)
  2. 29 顺时针打印矩阵(54. Spiral Matrix)(系列)
  3. Kth Smallest Element in a Sorted Matrix
  4. Set Matrix Zeroes(cnblogs)

位运算

  1. 位运算规律总结
  2. 15 二进制中1的个数(191. Number of 1 Bits)
  3. 56 数组中只出现一次的数字(136. Single Number)(系列)

特殊数与数位

  1. 204. Count Primes
  2. 263. Ugly Number(系列)
  3. 43 1~n整数中1出现的次数 (233. Number of Digit One )
  4. 44 数字序列中某一位的数字(400. Nth Digit)

字符串

  1. 50 第一个只出现一次的字符(387. First Unique Character in a String)
  2. 5 替换空格
  3. Reverse String
  4. Reverse Integer
  5. 58 翻转字符串(翻转单词与左旋转字符串)
  6. 67 把字符串转成整数
  7. String to Integer (atoi)
  8. Implement strStr()(cnblogs)
  9. 38 字符串的排列(全排列问题)
  10. Longest Common Prefix(cnblogs)
  11. Valid Parentheses(括号对)(cnblogs)
  12. Valid Palindrome(回文词系列)
  13. Longest Palindromic Substring
  14. 242. Valid Anagram (变位词系列)
  15. 48 最长不含重复字符的子字符串(3. Longest Substring Without Repeating Characters)
  16. Count and Say
  17. 19 正则表达式匹配(hard,了解即可)
  18. 20 表示数值的字符串(了解即可)

栈和队列

  1. 9.1 用队列实现栈(225. Implement Stack using Queues)
  2. 9.2 用栈实现队列(232. Implement Queue using Stacks)
  3. 30 包含min函数的栈(155. Min Stack)
  4. 31 栈的压入、弹出序列
  5. 59 队列(滑动窗口)的最大值

链表

  1. 14 反转链表 206. Reverse Linked List(系列)
  2. 6 从尾到头打印链表
  3. 18 删除链表中的结点(237. Delete Node in a Linked List)
  4. 22 删除链表中倒数第k个结点(19. Remove Nth Node From End of List)(cnblogs)
  5. 52 两个链表的第一个公共结点(Intersection of Two Linked Lists)
  6. 23 有环链表问题-链表中环的入口结点(141. Linked List Cycle)
  7. 25 合并两个排序的链表(系列)(21. Merge Two Sorted Lists)
  8. 35 复杂链表的复制(138. Copy List with Random Pointer)
  9. Add Two Numbers
  10. 328. Odd Even Linked List
  11. Palindrome Linked List

  1. 二叉树的遍历总结(前序、中序、后序、层序、 之字形层序、垂直序)
  2. 二叉查找树的查找、插入、删除
  3. 68 树中两个节点的最低公共祖先
  4. 104. Maximum Depth of Binary Tree
  5. 110. Balanced Binary Tree
  6. 28 对称二叉树(101. Symmetric Tree)
  7. 27 二叉树的镜像
  8. 26 树的子结构(572. Subtree of Another Tree)
  9. 34 二叉树中和为某一值的路径(112. Path Sum)
  10. 124. Binary Tree Maximum Path Sum
  11. 37 序列化二叉树(297. Serialize and Deserialize Binary Tree)(cnblogs)
  12. 7 重建二叉树(系列)
  13. Validate Binary Search Tree
  14. 36 二叉搜索树与双向链表
  15. 33 判断某序列是否为二叉搜索树的后序序列
  16. Kth Smallest Element in a BST(cnblogs)
  17. Convert Sorted Array to Binary Search Tree(cnblogs)
  18. Populating Next Right Pointers in Each Node
  19. 8 二叉树中序遍历的下一个结点

查找与排序

  1. 二分查找小结
  2. 40 最小的k个数(对应Kth Largest Element in an Array)
  3. 41 数据流中的中位数(295. Find Median from Data Stream)
  4. Median of Two Sorted Arrays
  5. Merge Sorted Array
  6. 33 Search in Rotated Sorted Array(系列)(cnblogs)
  7. 11旋转数组的最小数字(153. Find Minimum in Rotated Sorted Array)(系列)
  8. Search for a Range
  9. Find Peak Element
  10. First Bad Version
  11. Sort Colors(cnblogs)
  12. Top K Frequent Elements
  13. Merge Intervals(cnblogs)
  14. Wiggle Sort(系列)

动态规划与贪婪法

  1. 70 Climbing Stairs
  2. 14 剪绳子
  3. 剑指Offer-46:把数字翻译成字符串
  4. 42 连续子数组的最大和(53. Maximum Subarray)
  5. Maximum Product Subarray
  6. 《算法导论》动态规划、贪婪法与分治法ppt
  7. 47:礼物的最大价值
  8. House Robber(系列)
  9. Unique Paths(系列)
  10. Longest Increasing Subsequence
  11. 121. Best Time to Buy and Sell Stock(系列)
  12. Jump Game(系列)
  13. Coin Change(系列)
  14. Burst Balloons
  15. Word Break(系列)
  16. 背包问题总结

回溯法和暴力枚举法

  1. 排列与组合
  2. 12 矩阵中的字符串查找(79. Word Search 系列)
  3. 13 机器人的运动范围
  4. Generate Parentheses
  5. Letter Combinations of a Phone Number
  6. Number of Islands
  7. Subsets(系列)

分治法

  1. 16 数值的整数次方(50. Pow(x, n))
  2. 42 连续子数组的最大和(53. Maximum Subarray)
  3. Sqrt(x)

发散思维题

  1. 17 打印从1到最大的n位数
  2. 43 n个骰子的点数
  3. 62 圆圈中最后剩下的数字(约瑟夫环问题)
  4. 64 求1+2+…+n
  5. 65 不用加减乘除做加法
  6. 231. Power of Two(系列)
  7. Fizz Buzz(cnblogs)
  8. Roman to Integer
  9. Shuffle an Array
    原文作者:wikiwen
    原文地址: https://blog.csdn.net/kk55guang2/article/details/85223256
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。