剑指offer 牛客网 。。。
来源:互联网 发布:无人机淘宝可靠吗 编辑:程序博客网 时间:2024/05/01 18:06
刷题地址:
http://www.nowcoder.com/ta/coding-interviews?page=1
需要找到最优解法,参考学习牛客网左程云视频
需要手工敲出代码??然后在纸上写出代码来??
1 二维数组中的查找
- 有序查找 二分
2 替换空格
- 先统计增大的空间,然后从后往前替换
3 从尾到头打印链表
- 头插法将链表反转一下,然后遍历
4 重建二叉树
- 这类题目都采用递归,二叉树基本题
5 用两个栈实现队列
- 保持一个stack为空,通过两个栈转储,实现数据进出是队列形式的
6 旋转数组的最小数字
- 头尾往中间逼近的方法
7 斐波那契数列
最直接的递归/动归,也可转化为非递归
快速幂的做法 f(n) = f(n - 1) + f(n - 2), 二阶的快速幂
8 跳台阶
9 变态跳台阶
- 与 斐波那契数列 解法类似
10 矩形覆盖
- 同 斐波那契数列
11 二进制中1的个数
- 经典问题,采用位运算
12 数值的整数次方
- 快速幂方法
13 调整数组顺序使奇数位于偶数前面 (??)
注意无序和有序的区别
无序的做法类似快速排序
维持头,尾两个指针,不断的交换到相遇有序
最优解法??
14 链表中倒数第k个结点
- 两个指针,保持距离k,那么一个链表尾部,一个就是倒数k
15 反转链表
- 直接遍历,头插法
16 合并两个排序的链表
- 每个链表一个游标,边比较边连接,最后多的直接连接
17 树的子结构 ??
- 注意 子结构 和 子树的区别
子树的意思是包含了一个结点,就得包含这个结点下的所有节点,一棵大小为n的二叉树有n个子树,就是分别以每个结点为根的子树。
子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。
- 子树问题 可以采用 序列化方法,而子结构不能采用序列化方法
此题 递归求解,要么根,要么与左子树匹配,要么与右子树匹配,递归需要注意
18 二叉树的镜像
递归,注意顺序
19 顺时针打印矩阵
- 一圈一圈的打印,可以封装成一个方法
20 包含min函数的栈
- 维持两个栈,一个普通栈,一个存放min的栈,两个栈对应
21 栈的压入、弹出序列
- 直接利用STL stack等结构, 去模拟栈的压入、弹出过程
22 从上往下打印二叉树
直接层次遍历
23 二叉搜索树的后序遍历序列
- 判断后续是否合法
- 问清楚有没有重复数字,搜索树是怎样的排序
- 根据后序:左 右 根的顺序,递归判断是否满足二叉树的大小关系
24 二叉树中和为某一值的路径
DFS 或 BFS
25 复杂链表的复制 ??
26 二叉搜索树与双向链表
- 二叉树的非递归遍历 ?
27 字符串的排列
- 递归法,需要判断重复的串
- 可排序,然后判断,也可以采用set等数据结构
28 数组中出现次数超过一半的数字
- cur, count,(每次取两个不一样的数删除) 最后验证
#29 最小的K个数
- 快排思路
30 连续子数组的最大和
*动归
31 整数中1出现的次数(从1到n整数中1出现的次数) ??
32 把数组排成最小的数
- 两两组合排序,注意0
33 丑数
34 第一个只出现一次的字符
- hash
35 数组中的逆序对 ??
- 归并排序思路
36 两个链表的第一个公共结点 ?
- 单链表是否存在环
走一步,走两步,进一步可以找到第一个公共节点
*直接利用map
- 将两个链表先处理成一样长的,然后再判断
37 数字在排序数组中出现的次数
- 二分查找,然后左右扩散开统计
38 二叉树的深度
- 递归
39 输入一棵二叉树,判断该二叉树是否是平衡二叉树
- 直接中序遍历,判断数据是否递增
40 数组中只出现一次的数字
- 利用数的性质,异或运算
41 和为S的连续正数序列
- 数学公式
42 和为S的两个数字
- 排序 + 二分查找
43 左旋转字符串
三步翻转
改进三步翻转,用块交换
44 翻转单词顺序列
- 同 43 左旋转字符串
45 扑克牌顺子
- 统计个数为5,大小王个数
- 排序,逐一判断,减去大小王数目
46 孩子们的游戏(圆圈中最后剩下的数)
- 约瑟夫环
47 求1+2+3+…+n
48 不用加减乘除做加法
- 位运算模拟
49 把字符串转换成整数
- 注意最大负整数,最大正整数等特殊情况
50 数组中重复的数字 ??
51 构建乘积数组
- 构建左部分乘积 和 右部分乘积序列 *
52 正则表达式匹配 ??
- 递归 ?,.
53 表示数值的字符串 ??
54 字符流中第一个不重复的字符
55 链表中环的入口结点
- 链表环的判断
56 删除链表中重复的结点
- 链表删除节点模拟, 注意各种特殊情况
57 二叉树的下一个结点, 中序遍历顺序的下一个结点并且返回 ??
58 对称的二叉树 ??
59 按之字形顺序打印二叉树
- 按照层次遍历,加上标记
60 把二叉树打印成多行
61 序列化二叉树
DFS 、BFS,要能反序列化
62 二叉搜索树的第k个结点
- 非递归遍历 查找
63 数据流中的中位数
64 滑动窗口的最大值
- 利用 stack
65 矩阵中的路径
- DFS
66 机器人的运动范围
- DFS
0 0
- 剑指offer 牛客网 。。。
- 牛客网-剑指offer
- 牛客网-剑指offer
- 牛客网《剑指Offer》 矩形覆盖
- 《剑指offer》牛客网java题解
- 牛客网-剑指offer-替换空格
- 牛客网 剑指offer-跳台阶
- 牛客网 剑指offer-矩形覆盖
- 牛客网 剑指offer-反转列表
- 牛客网-剑指offer-丑数
- 剑指OFFER
- 剑指offer
- 剑指Offer
- 剑指offer
- 剑指Offer
- 剑指offer
- 剑指offer
- 剑指offer
- 笔记
- UVa 11212:Editing a Book(IDA*)
- sqlserver
- Leet Code 10 Regular Expression Matching
- spring配置详解
- 剑指offer 牛客网 。。。
- HTTP协议
- go 解析XML 设置缺省att的默认值
- [转发][纯记录]raid组的初始化详解
- Selection sort 选择排序
- PHP调试网页出现乱码解决方法!
- OpenCV视频进度播放控制
- opengl学习笔记(2)
- pl_sql