怎么说呢,一个好的算法可以培养思维。我们通过刷题可以学习到更多的算法和数据结构,并不是一味的for while if else,并且渐渐的更熟悉他们的使用方法以及应用场景。完成逻辑代码并不意味着可以通过系统所有的评测,不断的评审自己编写的代码,进一步达到完善。通过之后还有必要借鉴一下他人的题解,学习别人好的解题思路和实现方法,无形中提升了自身编码水平和代码评审水平。当然,这也是拿到一个好的offer必要的能力。我用java语言整理了剑指offer的题目,都是比较经典的。
数组中重复的数字 ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ 数组 简单
二维数组中的查找 ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ 数组 简单
替换空格 ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ 字符串 简单
从尾到头打印链表 ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ 链表 栈 递归 简单
重建二叉树 ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤递归 二叉树 中等
两个栈实现队列 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤ 栈 队列 简单
斐波那契数列 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤ ☆ ❤ 递归 简单
旋转数组的最小数字 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ 二分查找 简单
矩阵中的路径☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤☆ DFS 回溯 中等
机器人的运动范围 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ 深度优先 中等
二进制中1的个数 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤ 位运算 简单
数值的整数次方☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤ ☆ ❤运算 中等
打印从1到最大的n位数☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ 大数运算 中等
删除链表的节点 ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ❤ ☆ ❤ 单链表 简单
调整数组顺序使奇数位于偶数前面☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ ❤ ☆ 数组 简单
以上题目描述都来源:力扣(LeetCode)。