Skip to content

houjun0322/jianzhioffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

《剑指Offer》

一、按数据结构分类

LinkList

  • 003-从尾到头打印链表
  • 014-链表种倒数第K个结点
  • 015-反转链表
  • 016-合并两个或K个有序链表
  • 025-复杂链表的复制
  • 036-两个链表的第一个公共结点
  • 055-链表种环的入口结点
  • 056-删除链表中重复的结点

Tree

  • 004-重建二叉树
  • 017-树的子结构
  • 018-二叉树的镜像
  • 022-从上往下打印二叉树
  • 023-二叉搜索树的后序遍历序列
  • 024-二叉树中和为某一个只的路径
  • 026-二叉搜索树与双向链表
  • 038-二叉树的深度
  • 039-平衡二叉树
  • 057-二叉树的下一个结点
  • 058-对称的二叉树
  • 059-按之字形顺序打印二叉树
  • 060-把二叉树打印成多行
  • 062-序列化二叉树

Stack & Queue

  • 005-用两个栈实现队列
  • 020-包含min函数的栈
  • 021-栈的压入、弹出序列
  • 044-反转单词顺序列(栈)
  • 064-滑动窗口的最大值(双端队列)

Heap

  • 029-最小的K个数

Hash Table

  • 034-第一个只出现一次的字符

Graph

  • 065-矩阵中的路径(BFS)
  • 066-机器人的运动范围

二、按具体算法分类

斐波那契数列

  • 007-斐波拉契数列
  • 008-跳台阶
  • 009-变态跳台阶
  • 010-矩形覆盖

搜索算法

  • 001-二维数组查找
  • 006-旋转数组的最小数字(二分查找)
  • 037-数字在排序数组中出现的次数(二分查找)

全排列

  • 027-字符串的排列

动态规划

  • 030-连续子数组的最大和
  • 052-正则表达式匹配(我用的暴力)

回溯

  • 065-矩阵中的路径(BFS)
  • 066-机器人的运动范围(DFS)

排序

  • 035-数组中的逆序对(归并排序)
  • 029-最小的K个数(堆排序)
  • 029-最小的K个数(快速排序)

位运算

  • 011-二进制中1的个数
  • 012-数值的整数次方
  • 040-数组中只出现一次的数字

其他算法

  • 002-替换空格
  • 013-调整数组顺序使奇数位于偶数前面
  • 028-数组中出现次数超过一半的数字
  • 031-整数中1出现的次数(从1到n整数中1出现的次数)
  • 032-把数组排成最小的数
  • 033-丑数
  • 041-和为S的连续正数序列(滑动窗口思想)
  • 042-和为S的两个数字(双指针思想)
  • 043-左旋转字符串(矩阵翻转)
  • 046-孩子们的游戏-圆圈中最后剩下的数(约瑟夫环)
  • 051-构建乘积

纸质书目录:页码-题号:题目

  • P024-面试题1:赋值运算函数
  • P031-面试题2:实现singleton
  • P038-面试题3:二维数组中的查找
  • P044-面试题4:替换空格 题解
  • P051-面试题5:从尾到头打印链表
  • P055-面试题6:重建二叉树 题解
  • P059-面试题7:用两个栈实现队列
  • P066-面试题8:旋转数组的最小数字
  • P073-面试题9:斐波那契数列
  • P078-面试题10:二进制中1的个数
  • P088-面试题11:数值的整数次方
  • P094-面试题12:打印1到最大的n位数
  • P099-面试题13:在O(1)时间删除链表节点
  • P102-面试题14:调整数组顺序使奇数位于偶数前面
  • P107-面试题15:链表中倒数第K个节点
  • P112-面试题16:反转链表
  • P114-面试题17:合并两个排序的链表
  • P117-面试题18:树的子结构
  • P125-面试题19:二叉树的镜像
  • P127-面试题20:顺时针打印矩阵
  • P132-面试题21:包含min函数的栈
  • P134-面试题22:栈的压入、弹出序列
  • P137-面试题23:从上往下打印二叉树
  • P140-面试题24:二叉搜索树的后序遍历序列
  • P143-面试题25:二叉树中和为某一值的路径
  • P147-面试题26:复杂链表的复制
  • P151-面试题27:二叉搜索树与双向链表
  • P154-面试题28:字符串的排列
  • P163-面试题29:数组中出现次数超过一半的数字
  • P167-面试题30:最小的K个数
  • P171-面试题31:连续子数组的最大和
  • P174-面试题32:从1到n整数中1出现的次数
  • P177-面试题33:把数组排成最小的数
  • P182-面试题34:丑数
  • P186-面试题35:第一个只出现一次的字符
  • P189-面试题36:数组中的逆序对
  • P193-面试题37:两个链表中的第一个公共节点
  • P204-面试题38:数组在排序数组中出现的次数
  • P207-面试题39:二叉树的深度
  • P211-面试题40:数组中只出现一次的数字
  • P214-面试题41:和为s的两个数字VS和为s的连续正数序列
  • P218-面试题42:翻转单词顺序VS左旋转字符串
  • P223-面试题43:n个骰子的点数
  • P226-面试题44:扑克牌的顺子
  • P228-面试题45:圆圈中最后剩下的数字
  • P233-面试题46:求1+2+…+n
  • P237-面试题47:不用加减乘除做加法
  • P239-面试题48:不能被继承的类
  • P244-面试题49:把字符串转换成整数
  • P252-面试题50:树种两个结点的最低公共祖先
  • P261-面试题51:数组中重复的数字
  • P263-面试题52:构建乘积数组
  • P265-面试题53:正则表达式匹配
  • P267-面试题54:表示Å数值的字符串
  • P269-面试题55:字符流中第一个不重复的字符
  • P270-面试题56:链表中环的入口结点
  • P273-面试题57:删除链表中重复的结点
  • P275-面试题58:二叉树的下一个结点
  • P277-面试题59:对称的二叉树
  • P278-面试题60:把二叉树打印成多行
  • P280-面试题61:按之字形顺序打印二叉树
  • P283-面试题62:序列化二叉树
  • P285-面试题63:二叉搜索树的第K个结点
  • P286-面试题64:数据流中的中位数
  • P290-面试题65:滑动窗口的最大值
  • P294-面试题66:矩阵中的路径
  • P296-面试题67:机器人的运动范围

刷题步骤

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

About

My effort for offer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published