
剑指offer
南城西凛
屌丝攻城狮一枚
展开
-
剑指offer思路回顾 字符串替换空格
题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路1 O(n2)的方法也就是直观的方法就是遍历整个字符串,每找到一个空格,先将空格后的字符信息后移两哥位置,然后进行相关的字符替换。这个方法很戳 思路2 O(n)的方法,先遍历字符串,找出总的空格数目,计算出替换空格...原创 2018-08-30 19:38:03 · 140 阅读 · 0 评论 -
剑指offer思路回顾 重建二叉树(leetcode 前序、中序或中序、后序)
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路 首先由前序遍历序列我们可以找出跟节点 接着我们在中序遍历序列找寻跟节点的位置,跟节点左半部分的节点构成左子树,而右半部分的节点构成右子树。...原创 2018-08-30 20:14:08 · 534 阅读 · 0 评论 -
剑指offer思路回顾 数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路 O(N)的解法是用循环每次乘以base,比较简单 O(logN)的解法是采用二分法的思想,即a^b = a^(b/2) * a^(b/2),…… a^(b/2) = a^(b/4) * a^(b/4),……a^2 = a* a以此类推,这里注意当exponent...原创 2018-09-01 23:22:15 · 107 阅读 · 0 评论 -
剑指offer思路回顾 调整数组顺序使奇数位于数组前半部分
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路 双指针的思路去做这道题,由于要保证奇数和奇数,偶数和偶数之间的相对位置不变(从排序角度讲叫做保证稳定排序),因此先用指针I找到第一个偶数,然后用指针J在第一个偶数之后的区间找寻第一个奇数的位置,紧接着对这段数...原创 2018-09-02 00:19:36 · 195 阅读 · 0 评论 -
剑指offer思路回顾 链表中倒数第K个 leetcode 19
题目描述 输入一个链表,输出该链表中倒数第k个结点。 要求 只进行一次遍历 思路 用双指针的思路,第一个指针用来遍历链表,第二个指针是从第一个指针倒数第K个节点。因此首先从第一个指针开始遍历,遍历到第k-1个节点时(这里考虑特殊情况,链表指针长度不够的情况返回nullptr),则第二个指针从头节点开始遍历,当第一指针到达尾节点时,第二个指针也到达倒数第K个节点。 代码 /* stru...原创 2018-09-12 00:09:39 · 222 阅读 · 0 评论