剑指offer
柚子一只
好看的皮囊千篇一律,有趣的灵魂二百多斤
展开
-
《剑指offer》-- 字符串
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析 将长度为1的空格替换为长度为3的“%20”,字符串的长度变长。 如果允许我们开辟一个新的数组来存放替换空格后的字符串, 那么这道题目就非常简单。设置两个指针分别指向新旧字符串首元素, 遍历原字符串,如果碰到空格就...原创 2019-03-19 19:01:04 · 79 阅读 · 0 评论 -
《剑指Offer》反转链表 Python实现
一、题目描述 输入一个链表,反转链表后,输出新链表的表头。 二、解题思路 把listNode中的next改为null可以,但是想把listnode=null就麻烦了。因为你自己定义的listnode=head的话,listnode=null时head并不是空。这个也是清理对象时的经验,只能把最原始的对象赋值为空,要不然原始对象指针会一直占用这个对象。 用temp保存pHead的下一个节点。...原创 2019-03-22 11:00:57 · 339 阅读 · 0 评论 -
《剑指offer》 -- 变态跳台阶
一、题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 二、解题思想 其实就是费布拉奇数列的翻版。只有一个台阶时有1种跳法,有两个台阶时有2中跳法。 其余的台阶数可以化为比自己晚一个台阶+1跳和比自己晚两个台阶+2跳两种方式。 三、Python实现代码 # -*- coding:utf-8 -*- clas...原创 2019-03-22 16:57:00 · 140 阅读 · 0 评论 -
《剑指offer》-- 重建二叉树
一、题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 二、算法思想 本题主要采用递归的思想。首先介绍一下根据前序遍历和中序遍历来构建二叉树的思路:前序遍历的第一个则是二叉树的根,找到根在中序遍历中...原创 2019-03-22 16:59:25 · 95 阅读 · 0 评论