《剑指offer》题目说明
剑指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项目:
- https://github.com/Jack-Cherish/LeetCode
- 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》题目说明相关推荐
- java剑指offer_剑指offer题目java实现
Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 1 packageProblem2;2 3 public classSingletonClass {4 ...
- 剑指Offer题目详解(CPP、JAVA)
2019.10.11更新 最近开始学习c++,在本文中增加c++的解法,并更新一部分题目的解法. 前言(2018.6.1) 虽然已经度过了艰辛的找实习的日子,到了公司实习.但依然非常怀念那段准备面试. ...
- 剑指offer题目及答案
剑指offer 最近在牛客网上刷剑指offer的题目,现将题目和答案总结如下: 1. 二维数组的查找 2. 替换空格 3. 从尾到头打印链表 4. 重建二叉树 5. 用两个栈实现队列 6. 旋转数组的 ...
- 剑指 offer 题目分析及答案
1. 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到头打印链表 7. 重建二叉树 8. 二叉树的下一个结点 9. 用两个栈实现队列 ...
- 剑指offer答案 c语言,剑指offer 题目整理
合并两个排序的链表(25)[打分: 7.5/10] leetcode原题,去东京的飞机上写过.迭代好写,递归难写. 树的子结构(26) [打分: 7.5/10] leetcode原题.子树和子结构不同 ...
- LeetCode和剑指offer题目大合集
AlgorithmCode 本仓库收集一些算法的答案,目标是整理一套系统的算法参考答案以供其他学习者参考,我也在慢慢的学算法并且在坚持刷题,我会不定期的上传新的题目,希望大家共同努力! https:/ ...
- 剑指offer题目汇总
剑指pffer题目汇总 一.线性表 1.数组 思路总结:https://blog.csdn.net/Lollipop66/article/details/80816166 面试题3:数组中重复的数字 ...
- 剑指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,而大小王 ...
- 剑指offer题目详细版本
一.链表题目 1.从尾到头打印链表 使用栈(也可以使用数组,逆序输出) /** * public class ListNode { * int val; * ListNode next = null; ...
- 剑指offer题目记录
1.如下为类型CMyString的声明,请为该类型添加赋值运算符函数. 1 class CMyString 2 { 3 public: 4 CMyString(char* pData = NULL); ...
最新文章
- Delphi 的消息机制浅探三
- 巧用Excel 轻松转换人民币大小写
- 计算机一级access考试题库,App Store 上的“计算机二级access-全国计算机等级考试题库”...
- Java黑皮书课后题第8章:*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。重写该程序,通过检验是否每行、每列、每个小方盒中具有
- windows:(1)xmind常用快捷键
- C/C++之QT攻略——在QT中容易遇到的那些坑,千万别踩了!
- php 同步文件到服务器上,PHPstorm配置同步服务器文件
- python基础--闭包函数和装饰器
- matplotlib自定义鼠标光标坐标格式
- 微型计算机是啥课,微机课是什么意思
- 【转】Windows批处理学习(一)——MS-DOS命令
- 【题解】LuoGu5423:[USACO19OPEN]Valleys P
- 计算机科学与技术光学成像专业,光信息科学与技术专业就业方向有哪些
- python的time模块使用
- 解决win10 安装dnw驱动,每次重启都得禁用数字签名。解决命令行操作,设置元素数据时出错。电脑关闭Secure Boot
- u盘一插上计算机就不响应,u盘插上电脑没反应,详细教您修复无法识别u盘问题...
- 51单片机 YF-S201水流量检测传感器的使用
- dialog dismiss时键盘不消失的问题。
- Panoply:一款netCDF, HDF and GRIB数据查看器
- Java Swing实现仿win7计算器
热门文章
- linux常用的服务配置
- 多线程之死锁就是这么简单
- hadoop配置2.6.1 centos7
- 浪潮I9000革新传统刀片 解决基础架构统一难题
- 偶对称离散余弦变换 EDCT
- Unit testing Cmockery 简单使用
- 利用C#线程窗口调试多线程程序
- flink读mysql速度怎么样_[DB] Flink 读 MySQL
- java奇数偶数数组_在Java数组中将数组中的奇数置后偶数置前(两种不同的方法实现)...
- put url带参数_避免自己写的 url 被diss!建议看看这篇RESTful API简明教程!