剑指offer推荐刷题地址:

  • Leetcode: https://leetcode-cn.com/problemset/lcof (官方授权)
  • 牛客网:https://www.nowcoder.com/ta/coding-interviews

剑指offer 剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。但是牛客网上的66题。

如果是单纯的面试需求,剑指offer的优先级肯定是在Leetcode之前,总的说它有三个优点:

  • 1.很可能在面试中出现原题
  • 2.约66题,题量少,但是涵盖的内容较全
  • 3.能培养一个良好的刷题习惯

它的缺点是:

  • 1.只有66题,刷着容易过拟合
  • 2.动态规划的题比较少,因此需要在Leetcode上专项训练。

算法题主要分成数据结构具体算法部分

二、总结

现对这66道题目进行了粗略的划分,整理如下:

链表(8道):

剑指Offer(三):从尾到头打印链表

剑指Offer(十四):链表中倒数第k个结点

剑指Offer(十五):反转链表

剑指Offer(十六):合并两个排序的链表

剑指Offer(二十五):复杂链表的复制

剑指Offer(三十六):两个链表的第一个公共结点

剑指Offer(五十五):链表中环的入口结点

剑指Offer(五十六):删除链表中重复的结点

二叉树(12道):

剑指Offer(四):重建二叉树

剑指Offer(十七):树的子结构

剑指Offer(十八):二叉树的镜像

剑指Offer(二十二):从上往下打印二叉树

剑指Offer(二十四):二叉树中和为某一值的路径

剑指Offer(三十八):二叉树的深度

剑指Offer(三十九):平衡二叉树

剑指Offer(五十七):二叉树的下一个结点

剑指Offer(五十八):对称的二叉树

剑指Offer(五十九):按之字顺序打印二叉树

剑指Offer(六十):把二叉树打印成多行

剑指Offer(六十一):序列化二叉树

二叉搜索树(3道):

剑指Offer(二十三):二叉搜索树的后序遍历序列

剑指Offer(二十六):二叉搜索树与双向链表

剑指Offer(六十二):二叉搜索树的第k个结点

数组(12道):

剑指Offer(一):二维数组中的查找

剑指Offer(六):旋转数组的最小数字

剑指Offer(十三):调整数组顺序使奇数位于偶数前面

剑指Offer(十九):顺时针打印矩阵

剑指Offer(二十八):数组中出现次数超过一半的数字

剑指Offer(三十):连续子数组的最大和   动态规划

剑指Offer(三十二):把数组排成最小的数

剑指Offer(三十五):数组中的逆序对   排序

剑指Offer(三十七):数字在排序数组中出现的次数

剑指Offer(四十):数组中只出现一次的数字  位运算

剑指Offer(五十):数组中重复的数字

剑指Offer(五十一):构建乘积数组

字符串(9道):

剑指Offer(二):替换空格

剑指Offer(二十七):字符串的排列

剑指Offer(三十四):第一个只出现一次的字符

剑指Offer(四十三):左旋转字符串

剑指Offer(四十四):翻转单词顺序序列

剑指Offer(四十九):把字符串转换成整数

剑指Offer(五十二):正则表达式匹配

剑指Offer(五十三):表示数值的字符串

剑指Offer(五十四):字符流中第一个不重复的字符

栈和队列(3道):

剑指Offer(五):用两个栈实现队列

剑指Offer(二十):包含min函数的栈

剑指Offer(二十一):栈的压入、弹出序列

递归和循环(4道):

剑指Offer(七):裴波那契数列

剑指Offer(八):跳台阶

剑指Offer(九):变态跳台阶

剑指Offer(十):矩形覆盖

回溯法(2道):

剑指Offer(六十五):矩阵中的路径

剑指Offer(六十六):机器人的运动范围

位运算(2道):

剑指Offer(十一):二进制中1的个数

剑指Offer(十二):数值的整数次方

数学(2道):

剑指Offer(四十七):求1+2+3+…+n

剑指Offer(四十八):不用加减乘除的加法

其他(9道):

剑指Offer(二十九):最小的K个数  (堆排序, 快速排序)

剑指Offer(三十一):整数中1出现的次数(从1到n整数中1出现的次数)

剑指Offer(三十三):丑数

剑指Offer(四十一):和为S的连续正数序列

剑指Offer(四十二):和为S的两个数字

剑指Offer(四十五):扑克牌顺子

剑指Offer(四十六):孩子们的游戏(圆圈中最后剩下的数)

剑指Offer(六十三):数据流中的中位数

剑指Offer(六十四):滑动窗口的最大值

Github项目:

  1. https://github.com/Jack-Cherish/LeetCode
  2. https://github.com/nlpjoe/Coding4Interviews

据结构和DP在面试中手写代码的几率比较高,因此笔者目前的刷题节奏主要是:

剑指offer->Leetcode动态规划->面试前再过一遍剑指offer

每个人基础不一样,不过我觉得刷题还是要全职专项的刷。

有个重要的点是:每道题做完一定要去讨论区!

讨论区有非常精简的大神级代码,你好不容易AC了一道题准备去讨论区吹(装)水(逼),点开一看,“握草,还可以这样”。

思考为什么他可以写出这么好的代码,把每道题的思路理解后用笔记本记录下来,争取刷到融会贯通,即看见有个题能自动归类到某个方面,这样有一定好处。面试最重要的是让面试官日后能愿意与你以后一起工作,因此沟通交流非常重要。比如有时候面试需要交流,看着像是一道排序的题做不出来,就可以跟面试官交流:“我有几个不成熟的想法,一排序,二动态规划,三是直接搜索算法”,面试官可能就给个提示:“你先用排序试试吧“。

https://github.com/shenweichen/coding_interviews

https://cuijiahua.com/blog/2018/02/basis_67.html

https://www.jianshu.com/p/53f6bf6f8d50

《剑指offer》题目说明相关推荐

  1. java剑指offer_剑指offer题目java实现

    Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 1 packageProblem2;2 3 public classSingletonClass {4 ...

  2. 剑指Offer题目详解(CPP、JAVA)

    2019.10.11更新 最近开始学习c++,在本文中增加c++的解法,并更新一部分题目的解法. 前言(2018.6.1) 虽然已经度过了艰辛的找实习的日子,到了公司实习.但依然非常怀念那段准备面试. ...

  3. 剑指offer题目及答案

    剑指offer 最近在牛客网上刷剑指offer的题目,现将题目和答案总结如下: 1. 二维数组的查找 2. 替换空格 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的 ...

  4. 剑指 offer 题目分析及答案

    1. 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到头打印链表 7. 重建二叉树 8. 二叉树的下一个结点 9. 用两个栈实现队列 ...

  5. 剑指offer答案 c语言,剑指offer 题目整理

    合并两个排序的链表(25)[打分: 7.5/10] leetcode原题,去东京的飞机上写过.迭代好写,递归难写. 树的子结构(26) [打分: 7.5/10] leetcode原题.子树和子结构不同 ...

  6. LeetCode和剑指offer题目大合集

    AlgorithmCode 本仓库收集一些算法的答案,目标是整理一套系统的算法参考答案以供其他学习者参考,我也在慢慢的学算法并且在坚持刷题,我会不定期的上传新的题目,希望大家共同努力! https:/ ...

  7. 剑指offer题目汇总

    剑指pffer题目汇总 一.线性表 1.数组 思路总结:https://blog.csdn.net/Lollipop66/article/details/80816166 面试题3:数组中重复的数字 ...

  8. 剑指Offer题目:从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的。 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意的 数字。

    剑指Offer面试题 44:扑克牌的顺子 从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的. 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王 ...

  9. 剑指offer题目详细版本

    一.链表题目 1.从尾到头打印链表 使用栈(也可以使用数组,逆序输出) /** * public class ListNode { * int val; * ListNode next = null; ...

  10. 剑指offer题目记录

    1.如下为类型CMyString的声明,请为该类型添加赋值运算符函数. 1 class CMyString 2 { 3 public: 4 CMyString(char* pData = NULL); ...

最新文章

  1. Delphi 的消息机制浅探三
  2. 巧用Excel 轻松转换人民币大小写
  3. 计算机一级access考试题库,‎App Store 上的“计算机二级access-全国计算机等级考试题库”...
  4. Java黑皮书课后题第8章:*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。重写该程序,通过检验是否每行、每列、每个小方盒中具有
  5. windows:(1)xmind常用快捷键
  6. C/C++之QT攻略——在QT中容易遇到的那些坑,千万别踩了!
  7. php 同步文件到服务器上,PHPstorm配置同步服务器文件
  8. python基础--闭包函数和装饰器
  9. matplotlib自定义鼠标光标坐标格式
  10. 微型计算机是啥课,微机课是什么意思
  11. 【转】Windows批处理学习(一)——MS-DOS命令
  12. 【题解】LuoGu5423:[USACO19OPEN]Valleys P
  13. 计算机科学与技术光学成像专业,光信息科学与技术专业就业方向有哪些
  14. python的time模块使用
  15. 解决win10 安装dnw驱动,每次重启都得禁用数字签名。解决命令行操作,设置元素数据时出错。电脑关闭Secure Boot
  16. u盘一插上计算机就不响应,u盘插上电脑没反应,详细教您修复无法识别u盘问题...
  17. 51单片机 YF-S201水流量检测传感器的使用
  18. dialog dismiss时键盘不消失的问题。
  19. Panoply:一款netCDF, HDF and GRIB数据查看器
  20. Java Swing实现仿win7计算器

热门文章

  1. linux常用的服务配置
  2. 多线程之死锁就是这么简单
  3. hadoop配置2.6.1 centos7
  4. 浪潮I9000革新传统刀片 解决基础架构统一难题
  5. 偶对称离散余弦变换 EDCT
  6. Unit testing Cmockery 简单使用
  7. 利用C#线程窗口调试多线程程序
  8. flink读mysql速度怎么样_[DB] Flink 读 MySQL
  9. java奇数偶数数组_在Java数组中将数组中的奇数置后偶数置前(两种不同的方法实现)...
  10. put url带参数_避免自己写的 url 被diss!建议看看这篇RESTful API简明教程!