sword-to-offer 剑指Offer原书是用C++实现的,这里本人用Python对其中大部分使用了Python实现。 README目录自动生成 因为文件数目略显臃肿,所以使用一个脚本来自动化生成了在GitHub上的链接。具体可以参考: 自动化生成目录信息 自动化详细介绍 声明 代码仅供参考,有哪些不恰当,不正确的地方,欢迎批评指正。(^__^) 谢谢…… 详细目录 一个背包里面可以存放重量为weight的物品, 现有n件物品的集合s,其中质量分别为w0, w1,...wn-1.问能否从中选出若干物品,其和正好为weight 以O(1)空间复杂度找到O(n)数组中出现奇数的那个数的下标 获取一个模块或者类中的所有方法及参数列表 输出数字的二进制中的1的个数; 判断一个数是否为2的幂 Python实现霍夫曼树 约瑟夫环问题 将两个排序的数组merge成新的排好序的数组 没有加法运算符的加法实现, 没有减法运算符实现减法运算 单链表实现 将一个字符串转换成数字 无重复的字母组成的不同的串 腾讯笔试第二题,完美解决。类似于26进制的题型 二叉树相关所有内容 一次可以1步,2步,3步,上10个台阶的所有可能的方法; 变态青蛙跳 使用两个栈构造一个队列 两个队列实现一个栈 求一个数二进制中1的个数 别人实现的可打印编码的霍夫曼树 堆Python标准库的内置堆的测试! 输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 字符串全排列种类获取 打印1到n位长度的所有数字,如n=2, 则打印1-99;n=3,打印1-999. Python实现的各种排序算法 旋转数组求最小元素的值。如[3,4,5,1,2]是[1,2,3,4,5]数组的一个旋转。而且数组中的最小元素的值为1 矩阵从左至右, 从上到下依次递增,求指定的一个数是否在此矩阵 表达式转换,前缀中缀后缀 实现奇数在前偶数在后的数组调换。 根据前序遍历序列,中序遍历序列,重建一棵二叉树 实现一个霍夫曼树 1到n整数中出现1的总次数。如输入12,包含1的有1,10,11,12.共5个1。 如果一个数的因子只是2,3,5,那么这个数被称为丑数。 二叉树中和为某一个值的路径 判断一棵二叉树是否为另一棵的子结构,即子树。我的做法:遍历获取层次序列,判断序列是否在大树的序列中即可。 根据前序遍历序列,中序遍历序列重建一棵二叉树 一个栈,实现min函数,并且min,pop,push操作的时间复杂度都得为O(1)。 合并两个有序的链表。 把数组排成最小的数 数组中出现次数最多的那个元素的值。如[1,2,3,4,5,6,2,2,2,2,27,8]结果为2 栈的压入弹出序列合法性判断。如入栈:12345.出栈可以使45321,但是不能是43512 要求不使用乘除法,for,while,if,else,switch,case等关键字和三目运算实现这个和的运算。 堆和堆排序,默认使用大顶堆。 求一可棵二叉树的镜像 求两个链表的第一个公共节点。暴力法O(mn),所以空间换时间用栈特性,出栈的时候最后一个不等的节点就是公共节点了。 连续子数组的最大和 求出单链表中的倒数第K个节点的元素的值 使用顺时针的方向打印一个矩阵。 京东笔试第一题:求两个二进制数异或运算后的十进制的结果 京东笔试第二题,没思路。(⊙﹏⊙)b 临时测试文件,测完即可删除 携程笔试第一题题解思路