《剑指Offer》刷题笔记汇总

文章目录

    • 前言
    • 源码地址
    • 题目分类
        • 数组(Array)
        • 字符串(String)
        • 链表(LinkList)
        • 栈和队列(Stack & Queue)
        • 数学(Math)
        • 回溯法(Backtracking)
        • 动态规划(Dynamic Programming)

前言

2018年10月购买的《剑指Offer(第二版)》,平常课业较为繁重,寒假是个刷题的好时间,自己前前后后用了一周的时间刷完了剑指上除了与"树"相关的题目,累计64道面试题,其中包括书上没有给出算法的相关题目;有些题,之前已经做过了多次,整体来说,还是有很大的收获的。编程能力除了必备了语言基础外,刷题是可以有很大提高的,剑指刷完后,用了3天时间刷完了LeetCode上的初级算法题目,还有中级、高级和腾讯精选,接下来会坚持刷下去。

源码地址

Github项目:https://github.com/YBZMZM/Coding-Interviews

题目分类

没有按照书上的分类来进行,将题目按照题型整理分类如下:

数组(Array)

ID Title
3-1 数组中重复的数字
3-2 不修改数组找出重复的数字
4 二维数组中的查找
10 斐波那契数列
11 旋转数组的最小数字
21 调整数组顺序使奇数位于偶数前面
29 顺时针打印矩阵
39 数组中出现次数超过一半的数字
40 最小的k个数
42 连续子数组的最大和
45 把数组排成最小的数
51 数组中的逆序对
53-1 在排序数组中查找数字
53-2 0到n-1中缺失的数字
53-3 数组中数值和下标相等的元素
56-1 数组中只出现一次的两个数字
56-2 数组中唯一只出现一次的数字
57-1 和为s的两个数字
57-2 和为s的连续正数序列
66 构建乘积数组

字符串(String)

ID Title
5 替换空格
19 正则表达式匹配
20 表示数值的字符串
38 字符串的排列
48 最长不含重复字符的子字符串
50-1 第一个只出现一次的字符
50-2 删除第二个字符串的所有字符
50-3 删除字符串中所有重复的字符
50-4 判断变位词
58-1 翻转单词顺序
58-2 左旋转字符串
67 把字符串转换成整数

链表(LinkList)

ID Title
6 从尾到头打印链表
18-1 删除链表的节点
18-2 删除链表中的重复节点
22 链表中倒数第k个节点
23 链表中环的入口节点
24 反转链表
25 合并两个排序的链表
35 复杂链表的复制
52 两个链表的第一个公共节点
62 圆圈中最后剩下的数字

栈和队列(Stack & Queue)

ID Title
9-1 用两个栈实现队列
9-2 用两个队列实现栈
30 包含min函数的栈
31 栈的压入、弹出序列
59-1 滑动窗口的最大值
59-2 队列的最大值

数学(Math)

ID Title
15 二进制中1的个数
16 数值的整数次方
17 打印从1到最大的n位数
43 1~n整数中1出现的次数
44 数字序列中某一位的数字
46 把数字翻译成字符串
49 丑数
61 扑克牌中的顺子
63 股票的最大利润
64 求1+2+…+n
65 不用加减乘除做加法

回溯法(Backtracking)

ID Title
12 矩阵中的路径
13 机器人的运动范围

动态规划(Dynamic Programming)

ID Title
14 剪绳子
47 礼物的最大价值
60 n个骰子的点数

你可能感兴趣的:(《剑指Offer》刷题笔记汇总)