《剑指Offer》从零开始刷题全记录-Java

#数据结构与算法学习之——《剑指Offer刷题》-Java#

完结撒花! 所有代码GitHub地址

开始时间:2020-02-02
博主目前研一,刷题开始的有点晚了哈哈
刷题笔记是先自己写一遍,然后参考牛客上大牛的经验总结整理出来最佳的思路和算法,大部分题目还附带了测试用例(在main函数里)
飞一个师兄的刷题博客链接,强迫症福音


题目难度
NO.1 二维数组中的查找(数组、二分法)⭐⭐
NO.2 替换空格(字符串、replaceAll函数)
NO.3 从尾到头打印链表(链表、栈、add()前插)
NO.4 重建二叉树(前序、后序遍历&递归&Arrays静态函数copyOfRange)⭐⭐
NO.5 用两个栈实现队列(栈、队列)
NO.6 旋转数组的最小数字(数组、二分法变式)⭐⭐⭐
NO.7 斐波那契数列⭐⭐
NO.8 跳台阶
NO.9 变态跳台阶(斐波那契数列、公式和规律)⭐⭐⭐
NO.10 矩形覆盖(斐波那契数列)⭐⭐
NO.11 二进制中1的个数(位运算、找规律)⭐⭐
NO.12 数值的整数次方(复现Java pow()函数)⭐⭐
NO.13 调整数组顺序使奇数位于偶数之前(数组、多指针、辅助数组)⭐⭐
NO.14 链表中倒数第K个结点(链表、两指针配合)⭐⭐
NO.15 反转链表(链表、多指针、递归)⭐⭐
NO.16 合并两个排序的链表(链表、归并、递归)
NO.17 树的子结构(二叉树、递归、短路特点)⭐⭐⭐
NO.18 二叉树的镜像(二叉树镜像、递归)⭐⭐
NO.19顺时针打印矩阵(数组、找规律、缩小规模)⭐⭐
NO.20 包含min函数的栈(辅助栈空间)⭐⭐
NO.21 栈的压入、弹出序列(栈、数组、多指针、动态规划)⭐⭐⭐
NO.22 从上往下打印二叉树(二叉树、BFS、队列)⭐⭐
NO.23 二叉树的后序遍历序列(二叉搜索树、后序遍历、二分查找、递归)⭐⭐
NO.24 二叉树中和为某一值的路径(二叉树、递归、剪枝、嵌套容器排序)⭐⭐⭐⭐
NO.25 复杂链表的复制(链表、哈希表、加长链表拆分)⭐⭐⭐
NO.26 二叉搜索树与双向链表(中序遍历、递归、栈)⭐⭐⭐
NO.27 字符串的排列(全排列、去重、字典序)⭐⭐⭐⭐
NO.28 数组中出现次数超过一半的数字(数组、哈希表、在线处理、动态规划)⭐⭐
NO.29 最小的K个数(数组、partation、最大堆最小堆)⭐⭐⭐
NO.30 连续子数组的最大和(数组、分治算法、动态规划)⭐⭐⭐
NO.31 整数中1出现的次数(数学归纳、按位思考)⭐⭐⭐⭐
NO.32 把数组排成最小的数(数组、巧妙自定义比较器、拼接-String)⭐⭐⭐
NO.33 丑数(特殊数,找规律,在线处理)⭐⭐⭐
NO.34 第一个只出现一次的字符(在线处理,哈希表)⭐⭐
NO.35 数组中的逆序对(归并排序,分治算法,数组)⭐⭐
NO.36 两个链表的第一个公共结点(链表,等长拼接法,长者先行法,辅助栈)⭐⭐
NO.37 数字在排序数组中出现的次数(数组、二分查找)⭐⭐⭐
NO.38 二叉树的深度(二叉树、递归、层序遍历)
NO.39 平衡二叉树(二叉树、递归、后序遍历)⭐⭐
NO.40 数组中只出现一次的数字(数组、HashMap、位运算、异或)⭐⭐
NO.41 和为S的连续正数序列(序列数学规律、等差数列、求和公式、边界条件、滑动窗口、动态规划)⭐⭐⭐
NO.42 和为s的两个数字(有序数组、左右夹逼、多指针移动)
NO.43 左旋转字符串(字符串、库函数、拼接)
NO.44 翻转单词顺序列(字符串、库函数、空格、字符串数组、翻转)⭐⭐
NO.45 扑克牌顺子(TreeSet、排序)⭐⭐
NO.46 圆圈中最后剩下的数字 /约瑟夫环问题(公式推导,数学规律,过程模拟LinkedList)⭐⭐⭐
NO.47 求1到n的和(&&短路特性、位运算、异常处理机制、快速幂分解实现乘法)
NO.48 不用加减乘除做加法(位运算)
NO.49 把字符串转换成整数(字符串、实现库函数、边界条件、越界判断整合)
NO.50 数组中重复的数字(重复值、数组、哈希、in-place、巧妙算法)⭐⭐
NO.51 构建乘积数组(数组、找规律、动态规划)⭐⭐
NO.52 正则表达式匹配(字符串、正则表达式、递归、动态规划)⭐⭐⭐⭐⭐
NO.53 表示数值的字符串(字符串、正则表达式、完整逻辑)⭐⭐⭐
NO.54 字符流中第一个不重复的字符(字符流、哈希)⭐⭐
NO.55 链表中环的入口结点(链表、哈希、双指针)⭐⭐
NO.56 删除链表中重复的节点(链表、哈希、双指针)⭐⭐
NO.57 二叉树的下一个结点(二叉树,中序遍历,找规律)⭐⭐⭐
NO.58 对称的二叉树(二叉树,递归,DFS&BFS)⭐⭐⭐
NO.59 按之字形顺序打印二叉树(二叉树,BFS,queue&stack)⭐⭐
NO.60 把二叉树打印成多行(二叉树,队列,BFS层序遍历)
NO.61 序列化二叉树(二叉树,序列化(遍历),反序列化(构造),前序、层序遍历)⭐⭐⭐
NO.62 二叉搜索树的第k个结点(二叉搜索树,中序遍历,递归,栈)⭐⭐
NO.63 数据流中的中位数(数据流、最大堆、最小堆、中位数、PriorityQueue)⭐⭐
NO.64 滑动窗口的最大值(数组、在线处理、滑动窗口、单调队列、ArrayDeque)⭐⭐
NO.65 矩阵中的路径(数组、DFS、回溯法、是否存在路径)⭐⭐⭐
NO.66 机器人的运动路径(数组、DFS、BFS、最大连通域)⭐⭐⭐
NO.67 剪绳子(动态规划、贪心、数学推导)⭐⭐⭐
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值