0%

1.题目

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

2.思路分析

    拿到字符串之后,很容易想到有两种方式完成替换。第一种:从头到尾遍历,在原字符串的基础上进行替换。这种方式的缺点在于靠后的字符串会多次移动,因此对于含有O(n)个空格字符的字符串而言时间复杂度是O(n2)。第二种:创建一个新的字符串,并在其上进行替换。这种方式需要我们自己分配足够的内存空间。
    本文采用了一种使用从后向前遍历实现空格替换的方法,这种方法中所有的字符串只需要移动一次,因此这个算法的时间复杂度为O(n)。总体的算法步骤如下:

阅读全文 »

1.题目

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

2.思路

假设选定一个要查找的数字,如果在数组中任意选取一个数字来和该数字作比较,可能会导致下一次要查找的区域发生重叠。为了简化查找过程,我们可以选取每个查找区域右上角数据(左下角数据也可,原理相同)和要查找的数字进行比较。此时只会发生三种情况:

阅读全文 »

1.原理介绍

多终端管理的基本思路是将博客在Github网站上分为两个分支来管理:

  • 一个是master主分支用于存放博客的静态网站文件(hexo server之后会在本地文件里生成public文件夹,public文件夹内是根据.md生成的html静态网站文件),我们在电脑上更新完博客之后可以hexo deploy到该分支上,平时点进你的网站https://username.github.io/时看到的内容就是这个分支解析出来的。
    阅读全文 »

首先明确在hexo博客的主题配置时,有两个文件经常会用到。一个是blog根目录下的_config.yml文件,我们称其为站点配置文件,另一个则是themes\next下的_config.yml文件,我们称其为主题配置文件,在主题配置文件内next本身已自集成了一个统计算法,具体的用法如下:

阅读全文 »

Markdown是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML标记语言来说,Markdown可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。

阅读全文 »