9.3k 8 分钟

# 面试题 16:数值的整数次方 # 题目 实现函数 double_power(double base,int exponent) ,求 base 的 exponent 次方。不得使用库函数,同时不需要考虑大数问题。 # 思路 本题的直接思路是通过循环不断计算乘法,直到算出最终的结果。 需要注意的是, exponent 有可能为负数的情况,此时需要先取其绝对值,最后返回计算值的倒数。对于其他的特殊输入,如底数为 000 的情形,也需要特殊考虑。对于无效输入,使用 g_INVALID_INPUT 这个全局变量作为标识。 更高效的做法是使用快速幂的思想,利用如下公式求解 aaa 的 nnn...
8.9k 8 分钟

# 面试题 10:斐波那契数列 # 题目一:求斐波那契数列的第 nnn 项 写一个函数,输入 nnn,求斐波那契 (Fibonacci) 数列的第 nnn 项。斐波那契数列的定义如下: f(n)={0,n=0;1,n=1;f(n−1)+f(n−2),n>1f(n) = \begin{cases} 0, & n = 0; \\ 1, & n = 1; \\ f(n-1) + f(n-2), & n >...
5.3k 5 分钟

# 面试题 7:重建二叉树 # 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,输入前序遍历序列 {1,2,4,7,3,5,6,8}\{1,2,4,7,3,5,6,8\}{1,2,4,7,3,5,6,8} 和中序遍历序列{4,7,2,1,5,3,8,6}\{4,7,2,1,5,3,8,6\}{4,7,2,1,5,3,8,6},则重建如图所示的二叉树并输出它的头节点。二叉树节点的定义如下: struct BinaryTreeNode { int m_value; BinaryTreeNode...
5.4k 5 分钟

本系列文章是《剑指 Offer(第二版)》的个人笔记。主要是对作者的思路讲解在个人理解的基础上进行精炼,并且将其中的代码用更加偏 C++ 的风格进行改写。 # 面试题 3:数组中重复的数字 # 题目一:找出数组中重复的数字 在一个长度为 nnn 的数组里的所有数字都在 000~n−1n-1n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意个重复的数字。例如,如果输入长度为 777 的数组 {2,3,1,0,2,5,3}\{2, 3, 1, 0, 2, 5, 3\}{2,3,1,0,2,5,3},那么对应的输出是重复的数字 222...
3.2k 3 分钟

# 评论推送功能 Valine 的评论功能很强大,但是当有人进行评论时,并不会自动推送消息。如果想要在收到新的评论时获得推送,需要基于 Leancloud 来进行配置。 Shoka 主题的作者推荐使用 Valine-Admin 来实现评论管理及消息推送功能,项目地址可以点击此链接。 Valine-Admin 作者提供的配置教程有些地方存在一些不清楚的地方,下面记录一下我在配置过程中遇到的问题及解决方案,可以配合 Valine-Admin 的配置教程阅读。 # Leancloud 配置 关于 Leancloud...
12k 11 分钟

# Shoka 主题的搜索功能配置 Shoka 主题的搜索功能是基于 Algolia 实现的,由于 Algolia 每个月有搜索次数限制,并且每次搜索时需要访问其服务器进行查询,修改文章后还需要执行 hexo algolia 的指令,操作起来相对繁琐,因此我考虑更换为基于本地文件搜索的形式实现搜索功能。这一部分的实现主要参考了 Next 主题的相关代码。 # 若干主要的代码文件 Shoka 主题与搜索功能相关的代码主要在 shoka/source/js/_app/page.js , shoka/source/js/_app/pjax.js ,...
19k 17 分钟

# 关于本博客 其实很久之前即有搭建博客的想法了,之前也使用过 Hugo 进行尝试,也配置了一些主题,但是往往搭建好之后都没有时间去写博文,因此网站搭建完成之后便不再问津了。这次想着捡起来,是因自己这一年经历了比较多的事情,感觉有很多内容想要记录下来,但是又不太想在其他社交平台上发表,于是最终选择了博客这种形式来记录自己的想法。 本博客的内容可能各种各样,包括但不限于计算机相关的技术类文章、历史类相关的读书笔记等,基本上就是...