剑指offer
secretx
这个作者很懒,什么都没留下…
展开
-
剑指offer之斐波拉契
1.斐波拉契代码def f(n): if n <= 0: return 0 if n <= 2: return 1 one, two = 1, 1 for _ in xrange(2, n, 1): one, two = two, one+two return two2.更多应用青蛙跳台阶原创 2016-08-06 18:25:30 · 439 阅读 · 0 评论 -
二叉搜索树后序序列
1.题意给定一个序列,判断此序列是否是一个二叉搜索树的后序遍历序列二叉搜索树:左子树都比根节点小,右子树都比根节点大2.分析后序遍历序列,最后一个是根节点比根节点小的的是左子树部分,可以无左子树剩下的是右子树部分,必须比根节点大,可以无右子树递归检查序列的每段,直到检查段长度为1(到叶子节点)3.代码boo原创 2016-10-17 16:44:20 · 450 阅读 · 0 评论 -
剑指offer之数组划分
1.数组划分O(n)复杂度按照一定规则,划分数组,使得满足规则的元素排列在数组前段,不满足规则的排列在后段比如奇数排在偶数前,那么规则就是n&1==1比如负数排在非负数前,那么规则就是n代码不难,难在扩展性思路,规则可以随意变化,代码主体不变2.代码bool rule_func(int n){ //规则函数,满足规则的排在前面 retu原创 2016-10-02 20:33:58 · 463 阅读 · 0 评论 -
剑指offer之顺时针打印矩阵
1.分析每次以左上角为标志打印一圈,a[0][0]最外圈,a[1][1]次外圈,依次类推,a[k][k], 2*k*k打印一圈分为4步,a:从左往右打印上面一行,b:从上往下打印右侧一列,c:从右往左打印下面一行,d:从下往上打印左侧一列最后一圈有可能退化到只有一步(一行),两步(一列),或者三步(2行)。第一步骤a是必不可少的.2.代码#include原创 2016-10-02 20:28:09 · 486 阅读 · 1 评论 -
剑指offer之O(1)删除单链表节点
1.单向链表删除指定节点常规思路:从头遍历到指定节点前一个节点Pre,然后将Pre的next指向指定节点的下一个,删除指定节点即可。O(n)将指定节点下一个的内容复制到指定节点,然后删除其下一个节点。O(1)2.代码void deleteNode(ListNode **head, ListNode *toDelete){ if(!head ||原创 2016-11-07 11:21:12 · 1076 阅读 · 0 评论 -
剑指offer之二叉树路径求和
1.题目二叉树根节点到叶子节点的节点序列称为路径,如果路径上所有节点和为指定的某个数,就打印该路径 10 / \ 5 12 /\ 4 7 有两条路径上的结点和为22,分别是10+5+7和10+12思路比较简单:先序遍历二叉树,并同步更新直原创 2016-11-07 11:15:08 · 4363 阅读 · 0 评论 -
剑指offer之链表
1.求链表倒数第K个节点ahead指针先走K-1步,behind指针开始走,ahead走到末尾,此时behind刚好是倒数第K个2.求链表中间节点ahead指针一次走2步,behind一次走1步,当ahead走到末尾时,behind刚好是中间节点3.判断链表是否成环ahead指针一次走2步,behind一次走1步,当ahead走到末尾时,还没有追上behin原创 2016-11-07 11:03:08 · 410 阅读 · 0 评论 -
剑指offer之二进制位1的个数
1.求一个整数的二进制表示中有几个1基础补习:左移m右移m>>n,表示右边n位直接丢弃,负数左侧补n个1,正数和无符号数都是左侧补n个02.右移解法(错误的)不断把数字右移1位,和1做&运算,判断最右侧一位是否是1int NumberOf1(int n){ int count = 0; while(n) {原创 2016-11-07 10:53:44 · 377 阅读 · 0 评论 -
剑指offer之二叉树镜像
1.二叉树镜像是指左右对换一个二叉树 1 / \ 2 4 / / 3 5变成 1 / \ 4 2 \ \ 5 3递归交换非叶子节点左右子树即可2.代码#include#includest原创 2016-08-06 18:28:52 · 503 阅读 · 2 评论 -
剑指offer之重建二叉树
1.根据先序遍历和中序遍历重建二叉树先序遍历第一个总是根节点,中序遍历根节点在中间,左边为左子树,右边为右子树根据上述特性,每次能找到当前根节点,以及划分出左右子树,递归构建左右子树即可构建整个树example(红色根节点,黑色左子树,绿色右子树) 1 / \ 2 3 /原创 2016-10-19 10:29:40 · 494 阅读 · 0 评论