2011年7月至今,解题笔记系列已有39篇文章,本文做一个归纳及索引,方便网友阅读参考。其中的题目多出自两个博客,一个是JULY的,另一个是何海涛的。上面有题目,也有解题思路及代码。
JULY的博客 http://blog.csdn.net/v_JULY_v/article/details/6057286
何海涛的博客 http://zhedahht.blog.163.com/
本人看的题目主要是这两个博客的,自己实现了一下,同时收集了一些其他的算法题。贴在博客上算是一个备份,方便以后查阅,同时也供各位网友参考。
鉴于本人水平有限,思路及代码难免会有问题,还请读者见谅,同时也欢迎大家的批评与建议。
主要按数据结构归纳
(1)树。涉及树的题目多用递归解决。文章列表如下:
解题笔记(4)——把二元查找树转变成排序的双向链表
解题笔记(6)——在二元树中找出和为某一值的所有路径(树)
解题笔记(7)——判断整数序列是不是二元查找树的后序遍历结果
解题笔记(20)——判断二叉树是不是平衡的
解题笔记(32)——输入一颗二元查找树,将该树转换为它的镜像
解题笔记(33)——按层次遍历二元树
(2)字符串。涉及的算法比较多,递归、动态规划等等。文章列表如下:
解题笔记(8)——翻转句子中单词的顺序
解题笔记(11)——字符串转换为整数
解题笔记(14)——几个字符串的问题
(1.找两个字符串的最长公共子串;2.在字符串中删除特定元素;3.左旋转字符串,其实也可以左旋数组;
4.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b;5.在字符串中找出连续最长的数字串)
解题笔记(21)——字符串的排列组合问题
(3)链表。这类题解法比较巧妙。文章列表如下:
解题笔记(13)——几个链表的问题
(1.输入一个链表的头结点,反转该链表,并返回反转后链表的头结点;2.输入一个链表的头结点,从尾到头反过来输出每个结点的值;
3.给定链表的头指针和一个结点指针,在O(1)时间删除该结点;4.两个单向链表,找出它们的第一个公共结点)
解题笔记(30)——找含单链表的环入口点
解题笔记(30)——找含单链表的环入口点(转网上某位高手的解法)
(4)数组。多用动态规划解决,比如子数组的最大和、数对之差的最小值、最长单调递增子序列等。
解题笔记(1)——子数组之和的最大值
解题笔记(19)——数对之差的最小值
解题笔记(24)——找出数组中两个只出现一次的数字(数组)
解题笔记(25)——把数组排成最小的数
解题笔记(27)——找数组中的特定元素
解题笔记(31)——从数列1,2...n中随意取几个数,使其和等于m
解题笔记(34)——求最长单调递减子序列
解题笔记(35)——旋转数组中的最小元素
(5)栈和队列。多用递归解决。文章类表如下:
解题笔记(12)——用两个栈实现队列
解题笔记(15)——几个栈和递归的问题
(1.跳台阶问题;2.栈的push、pop序列;3.二元树的深度;4.颠倒栈;5.设计包含min函数的栈)
(6)随机。
解题笔记(3)——随机数选择
(7)数字及游戏。文章列表如下:
解题笔记(10)——约瑟夫环问题
解题笔记(16)——几个数字的问题
(1.整数的二进制表示中1的个数;2.输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数;
3.输入一个正数n,输出所有和为n连续正数序列;4.调整数组顺序使奇数位于偶数前面;5.寻找丑数)
解题笔记(17)——扑克牌的顺子
解题笔记(18)——n个骰子的点数
解题笔记(22)——n后问题
解题笔记(26)——排队问题
解题笔记(28)——寻找捣乱分子对
解题笔记(29)——珠子问题
解题笔记(36)——最大公约数问题
解题笔记(37)——Catalan数计算及应用
(1.n对括号有多少种匹配方式;2.矩阵链乘;3.一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列;
4.n个节点构成的二叉树,共有多少种情形;5.在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数;
6.求一个凸多边形区域划分成三角形区域的方法数;7.有2n个人排成一行进入剧场)
解题笔记(38)——大整数阶乘计算
解题笔记(39)——过河问题
(8)其他。
解题笔记(2)——部分面试题解题思路
解题笔记(5)——CPU占用率固定为50%
解题笔记(9)——提取某日访问次数最多的那个IP
解题笔记(9)——提取某日访问次数最多的那个IP(补充)
以上是截止2011年10月7日的解题笔记。