
剑指offer
NaCl__
这个作者很懒,什么都没留下…
展开
-
替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 一开始的思路便是从开头扫到右空格就替换,但这样做,空格后的每个字符串都要推后,这样时间复杂度就是O(n2)。 所以我们可以换一种思路。我们可以从前扫到后找到空格的数目,然后确定下来替换后长度为多少,然后从结尾开始扫,遇到空格就替换。时间复杂度原创 2017-12-30 19:13:07 · 396 阅读 · 0 评论 -
反向输出链表
输入一个链表,用反向输出链表的节点。 可以用栈保存的遍历的链表节点的值。然后用栈先进后出的特点。就可以实现从尾到头输出节点值。#include<stdio.h> #include<string.h> #include<iostream> #include<list> #include<stack> #include<algorithm> using namespace std; int main(原创 2017-12-30 19:44:06 · 534 阅读 · 0 评论 -
二维数组中的查找
题意: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 因为数组是有序,从左到右递增,从上到下递增。那我们可以从左下或者右上开始查找。比如我们从左上开始查找,如果数组元素大于给定的数,那么肯定就是给定的数在数组元素的上面,如果小于给定的数,那么就是在右边。 下面给出原创 2017-12-29 23:11:39 · 245 阅读 · 0 评论